通过set和out检查jstl变量是否为空

时间:2013-09-02 10:19:58

标签: java jstl

嘿,我想通过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设置为空字符串,所以技术上这是对的吗?

2 个答案:

答案 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>