我如何验证字符串是否为空或使用JSTL的c标签?
我有一个名为var1的变量,我可以显示它,但我想添加一个比较器来验证它。
<c:out value="${var1}" />
我想验证它为空或空(我的值是字符串)。
我如何验证字符串是否为空或使用JSTL的c标签?
我有一个名为var1的变量,我可以显示它,但我想添加一个比较器来验证它。
<c:out value="${var1}" />
我想验证它为空或空(我的值是字符串)。
当前回答
你可以使用
${var == null}
另外。
其他回答
这里有一句台词。
EL里面的三元运算符
${empty value?'value is empty or null':'value is NOT empty or null'}
你可以使用
${var == null}
另外。
也检查空白字符串,我建议如下
<%@ 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>
它还处理空值
这段代码是正确的,但如果您输入了大量的空格(' ')而不是null或空字符串 返回false。
要纠正这个错误,请使用正则表达式(下面的代码检查变量是否为空或空或与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>