Comment valider si une variable String
est nulle ou vide à l'aide des balises c
de JSTL
?
J'ai une variable de nom var1
et je peux l'afficher, mais je veux ajouter un comparateur pour le valider.
<c:out value="${var1}" />
Je veux valider quand il est nul ou vide (mes valeurs sont des chaînes).
Comment puis-je valider si une chaîne est nulle ou vide à l'aide des balises c de JSTL?
Vous pouvez utiliser le mot clé empty
dans un <c:if>
pour ceci:
_<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 restituer de manière conditionnelle un ensemble de balises et que vous ne pouvez donc le vérifier que dans un attribut de balise, vous pouvez utiliser l'opérateur EL conditionnel _${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 Expression Language , sujet distinct de JSTL ), à vérifier ici .
pour vérifier également la chaîne vide, je suggère de suivre
<%@ taglib prefix="fn" uri="http://Java.Sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="c" uri="http://Java.Sun.com/jsp/jstl/core"%>
<c:if test="${empty fn:trim(var1)}">
</c:if>
Il gère également les valeurs NULL
Voici la doublure.
${empty value?'value is empty or null':'value is NOT empty or null'}
si vous cochez seulement NULL ou vide, vous pouvez utiliser l'option with default pour ceci: <c:out default="var1 is empty or null." value="${var1}"/>
Ce code est correct, mais si vous avez entré beaucoup d'espace ('') au lieu de null ou de chaîne vide, la valeur false.
Pour corriger cette expression, utilisez une expression régulière (ce code ci-dessous vérifie si la variable est null, vide ou vierge, de la même manière que org.Apache.commons.lang.StringUtils.isNotBlank):
<%@ taglib uri="http://Java.Sun.com/jsp/jstl/functions" prefix="fn" %>
<c:if test="${not empty description}">
<c:set var="description" value="${fn:replace(description, ' ', '')}" />
<c:if test="${not empty description}">
The description is not blank.
</c:if>
</c:if>
Vous pouvez utiliser
${var == null}
alternativement.