web-dev-qa-db-fra.com

Évaluer les balises JSTL c vides ou nuls

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).

374
user338381

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 .

Voir également:

726
BalusC

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

24
andro83

Voici la doublure.

Opérateur ternaire dans EL

${empty value?'value is empty or null':'value is NOT empty or null'}
6
Sorter

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}"/>

6
Ankit Agarwal

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>
5
Rija Ramampiandra

Vous pouvez utiliser

    ${var == null}

alternativement.

3
Supun Dharmarathne