嘿,我想通过set and out检查jstl变量是否为空。
使用set:
创建了一个变量<c:set var="prevValue" value="" />
我通过使用out方法检查jstl变量是否为空来执行以下操作:
<c:when test="<c:out value='${empty prevValue}' />" />
empty
</c:when>
<c:otherwise>
not empty
</c:otherwise>
但我收到的不是空的。为什么会这样?我确实将prevValue设置为空字符串,所以技术上这是对的吗?
答案 0 :(得分:2)
代码将字符串文字放在test
标记的c:when
属性中,该标记需要布尔值。简化测试表达式以仅检查prevValue是否为空,代码不应包含测试中的<c:out ...
段。使用:
<c:when test="${empty prevValue}" />
此外,如果您想继续使用<c:when>
,则条件必须包含在<c:choose>
一个完整的例子:
<c:choose>
<c:when test="${empty prevValue}" />
empty
</c:when>
<c:otherwise>
not empty
</c:otherwise>
</c:choose>
答案 1 :(得分:1)
您已经有一个有效的答案,
但为什么不简单呢?
<c:if test="${not empty prevValue}">
//not empty
</c:if>