代码之家  ›  专栏  ›  技术社区  ›  chrizonline

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

  •  0
  • chrizonline  · 技术社区  · 12 年前

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

    2 回复  |  直到 12 年前
        1
  •  2
  •   Kevin Bowersox    12 年前

    代码在 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>
    
        2
  •  1
  •   Suresh Atta    12 年前

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

    但为什么不简单呢?

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