0

嘿,我想通过 set 和 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 设置为空字符串,所以从技术上讲这是正确的,对吧?

4

2 回答 2

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>
于 2013-09-02T10:22:24.120 回答
1

你已经有了一个有效的答案,

但为什么不简单呢?

<c:if test="${not empty prevValue}">

//not empty 

</c:if>
于 2013-09-02T10:24:27.830 回答