Answers:
如何使用JSTL的c标签验证String为null还是为空?
您可以为此使用empty
关键字<c:if>
:
<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:when test="${empty var1}">
var1 is empty or null.
</c:when>
<c:otherwise>
var1 is NOT empty or null.
</c:otherwise>
</c:choose>
或者,如果您不需要有条件地渲染一堆标签,因此只能在tag属性中检查它,则可以使用EL条件运算符${condition? valueIfTrue : valueIfFalse}
:
<c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
要了解有关这些${}
内容的更多信息(表达语言,它是与JSTL分离的主题),请点击此处。
empty
不起作用Set
。您需要升级到JSTL 1.1(已经从2003开始)。
${not empty var1}
是否同时检查空值和null?我的意思是,当且仅当测试进行评估,以真正var1
是不是零和 var1
的不空。无需null
单独检查吗?
empty
equvilant到NE ''
String
值,则等同于var ne null and var ne ''
。此外,它还支持Object
,数组Collection
和Map
。
如果仅选中null或empty,则可以使用with default选项:
<c:out default="var1 is empty or null." value="${var1}"/>
这段代码是正确的,但是如果您输入了很多空格('')而不是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>
这是如何验证从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>