评估空的或空的JSTL c标签

如何使用JSTLc标签validationString是否为空或空?

我有一个variables的名称var1 ,我可以显示它,但我想添加一个比较器来validation它。

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

我想validation它为空或空(我的值是string)。

如何使用JSTL的c标签validationstring是否为空或空?

你可以在<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} ${condition? valueIfTrue : valueIfFalse}

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

要了解更多关于这些${}东西( expression式语言 ,这是一个独立于JSTL的主题), 请点击这里 。

也可以看看:

  • EL空操作符在JSF中如何工作?

也检查空白string,我build议如下

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

它也处理空值

这段代码是正确的,但是如果你input了很多空格('')而不是null或空string返回false。

若要更正此使用正则expresion(下面的代码检查该variables是否为空或空或空白相同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> 

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

这是一个class轮。

EL内的三元运算符

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

您可以使用

  ${var == null} 

或者。

 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> 

以下是如何validation从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>