JSTL <c:if>标记 - 检查Java Bean方法是否返回True </c:if>

时间:2014-04-11 08:30:41

标签: java if-statement jstl javabeans

我目前有一个.jsp文件如下(部分显示):

<jsp:useBean id="cart" class="edu.unsw.comp9321.assignment1.CartBean"
scope="session" />  
<tr>
    <td><input type="submit" name="cartBtn" value="Go To Checkout"/></td>
    <td><input type="submit" name="cartBtn" value="Remove From Cart"/></td>
    <c:if test="${cart.isCartListEmpty eq true}"> 
        <td><input type="submit" name="cartBtn" value="Back To Search"/></td>
    </c:if> 
</tr>       

bean cart的代码为:

public boolean isCartListEmpty(){
    if (this.cart.isEmpty())
        return true;
    return false;
}

问题是我收到以下行的错误:

<c:if test="${cart.isCartListEmpty eq true}">

有人可以告诉我正确的方法来评估bean方法是返回true还是false

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

EL ${bean.attribute}会尝试调用getAttribute()的方法isAttribute()bean

因此,在您的情况下,${cart.isCartListEmpty}会在getIsCartListEmpty()中查找方法isIsCartListEmpty()cart

因此您需要${cart.cartListEmpty}调用appripriate isCartListEmpty()方法。


附注:

  1. 无需添加eq true部分,因为isCartListEmpty()已经返回布尔值。
  2. 您可以(应该?)将isCartListEmpty()方法正文简化为return this.cart.isEmpty()