如何String
使用c
标签验证a 是空还是空JSTL
?
我有一个名称变量,var1
我可以显示它,但我想添加一个比较器来验证它.
<c:out value="${var1}" />
Run Code Online (Sandbox Code Playgroud)
我想验证它是null还是空(我的值是字符串).
Bal*_*usC 742
如何使用JSTL的c标签验证String是空还是空?
您可以empty
在a中使用关键字<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>
Run Code Online (Sandbox Code Playgroud)
或者<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>
Run Code Online (Sandbox Code Playgroud)
或者,如果您不需要有条件地渲染一堆标记,因此您只能在标记属性中检查它,那么您可以使用EL条件运算符${condition? valueIfTrue : valueIfFalse}
:
<c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
Run Code Online (Sandbox Code Playgroud)
要了解有关这些${}
内容的更多信息(表达语言,这是与JSTL不同的主题),请点击此处.
and*_*o83 24
还要检查空白字符串,我建议如下
<%@ 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>
Run Code Online (Sandbox Code Playgroud)
它还处理空值
如果只检查null或为空,则可以使用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>
Run Code Online (Sandbox Code Playgroud)
这是一个班轮.
${empty value?'value is empty or null':'value is NOT empty or null'}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
685426 次 |
最近记录: |