Comment puis-je valider si une chaîne est nulle ou vide en utilisant les balises c de JSTL?
Vous pouvez utiliser le empty
mot - clé dans un <c:if>
pour cela:
<c:if test="${empty var1}">
var1 is empty or null.
</c:if>
<c:if test="${not empty var1}">
var1 is NOT empty or null.
</c:if>
Ou le <c:choose>
:
<c:choose>
<c:when test="${empty var1}">
var1 is empty or null.
</c:when>
<c:otherwise>
var1 is NOT empty or null.
</c:otherwise>
</c:choose>
Ou si vous n'avez pas besoin de rendre conditionnellement un tas de balises et que vous ne pouvez donc le vérifier qu'à l'intérieur d'un attribut de balise, vous pouvez utiliser l'opérateur conditionnel EL ${condition? valueIfTrue : valueIfFalse}
:
<c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
Pour en savoir plus sur ces ${}
choses (le langage d'expression , qui est un sujet distinct de JSTL ), vérifiez ici .
Voir également:
empty
ne fonctionne pasSet
lors de l'utilisation de l'ancien JSTL 1.0. Vous devez effectuer une mise à niveau vers JSTL 1.1 (qui date déjà de 2003).${not empty var1}
vérifie- t-il à la fois vide et null simultanément? Je veux dire que le test est évalué à vrai si et seulement sivar1
n'est pas nul etvar1
n'est pas vide. N'est-il pas nécessaire de vérifiernull
séparément?empty
équivalent à ne ''String
valeurs, c'est équivalent àvar ne null and var ne ''
. De plus, il prend également en chargeObject
, arrayCollection
etMap
.pour vérifier également la chaîne vide, je suggère de suivre
Il gère également les valeurs nulles
la source
si vous ne cochez que null ou vide, vous pouvez utiliser l'option with default pour cela:
<c:out default="var1 is empty or null." value="${var1}"/>
la source
Ce code est correct mais si vous avez entré beaucoup d'espace ('') au lieu de chaîne nulle ou vide, retournez false.
Pour corriger cela, utilisez une expression régulière (ce code ci-dessous vérifie si la variable est nulle ou vide ou vide la même chose que org.apache.commons.lang.StringUtils.isNotBlank):
la source
Voici la doublure.
Opérateur ternaire à l'intérieur d'EL
la source
Vous pouvez utiliser
alternativement.
la source
Voici un exemple de validation d'un int et d'une chaîne que vous transmettez du contrôleur Java au fichier JSP.
MainController.java:
importJavaToJSPExamples.jsp
la source
la source