[jsp] Évaluez les balises JSTL c vides ou vides



Answers

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 nulles

Question

Comment puis-je valider si une String est nulle ou vide en utilisant les 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).




Vous pouvez utiliser

    ${var == null}

alternativement.




Voici un exemple de la façon de valider un int et un String que vous passez du Java Controller au fichier JSP.

MainController.java:

@RequestMapping(value="/ImportJavaToJSP")
public ModelAndView getImportJavaToJSP() {
    ModelAndView model2= new ModelAndView("importJavaToJSPExamples");

    int someNumberValue=6;
    String someStringValue="abcdefg";
    //model2.addObject("someNumber", someNumberValue);
    model2.addObject("someString", someStringValue);

    return model2;
}

importJavaToJSPExamples.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<p>${someNumber}</p>
<c:if test="${not empty someNumber}">
    <p>someNumber is Not Empty</p>
</c:if>
<c:if test="${empty someNumber}">
    <p>someNumber is Empty</p>
</c:if>
<p>${someString}</p>
<c:if test="${not empty someString}">
    <p>someString is Not Empty</p>
</c:if>
<c:if test="${empty someString}">
    <p>someString is Empty</p>
</c:if>



Ce code est correct mais si vous avez entré beaucoup d'espace ('') au lieu de la chaîne nulle ou vide, renvoyez false.

Pour corriger cela, utilisez l'expression régulière (ce code ci-dessous vérifie si la variable est nulle ou vide ou vide comme 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>



Related



Tags

jsp   jstl   el