计算空的或空的JSTL c标记

如何使用JSTLc标记验证String是否为空?

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

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

我想验证它为空或空(我的值是字符串)。

812785 次浏览

我如何验证字符串是否为空或使用JSTL的c标签?

你可以在<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'}" />

为了了解更多关于那些${}的东西(表达式语言,这是一个独立于JSTL的主题),检查在这里

参见:

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

要纠正这个错误,请使用正则表达式(下面的代码检查变量是否为空或空或与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>

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

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

它还处理空值

这里有一句台词。

EL里面的三元运算符

${empty value?'value is empty or null':'value is NOT empty or 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>

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

你可以使用

    ${var == null}

另外。

下面是一个如何验证从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>