评估空的或空的JSTL c标签
如何使用JSTL
的c
标签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>