首页 文章

评估空或空JSTL c标记

提问于
浏览
367

如何使用 JSTLc 标签验证 String 是空还是空?

我有一个名为 var1 的变量,我可以显示它,但我想添加一个比较器来验证它 .

<c:out value="${var1}" />

我想验证它是null还是空(我的值是字符串) .

8 回答

  • 701

    如何使用JSTL的c标签验证String是空还是空?

    您可以在<c:if>中使用 empty 关键字:

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

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

    或者,如果您不需要有条件地渲染一堆标记,因此您只能在标记属性中检查它,那么您可以使用EL条件运算符 ${condition? valueIfTrue : valueIfFalse}

    <c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
    

    要了解有关 ${} 事物的更多信息(Expression Language,这是JSTL的单独主题),check here .

    另见:

  • 5

    还要检查空白字符串,我建议如下

    <%@ 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>
    

    它还处理空值

  • 2

    如果只检查null或为空,则可以使用with default选项: <c:out default="var1 is empty or null." value="${var1}"/>

  • 6

    这段代码是正确的但是如果你输入了很多空格('')而不是null或空字符串返回false .

    要更正此问题,请使用常规表达式(下面的代码检查变量是null还是空或空白与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

    这是一个班轮 .

    EL内部的三元运算符

    ${empty value?'value is empty or null':'value is NOT empty or null'}
    
  • -1

    您可以使用

    ${var == null}
    

    或者 .

  • -1
    In this step I have Set the variable first:
    
    <c:set var="structureId" value="<%=article.getStructureId()%>" scope="request"></c:set>
    
    In this step I have checked the variable empty or not:
    
     <c:if test="${not empty structureId }">
        <a href="javascript:void(0);">Change Design</a>
     </c:if>
    
  • 22

    这是一个如何验证从Java控制器传递到JSP文件的int和String的示例 .

    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>
    

相关问题