【问题标题】:JSTL <c:if> tag - Checking whether Java Bean method returns TrueJSTL <c:if> 标记 - 检查 Java Bean 方法是否返回 True
【发布时间】:2014-04-11 08:30:40
【问题描述】:

我目前有一个.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>       

cart有代码:

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

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

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

有人能告诉我评估bean方法返回true还是false的正确方法吗?

感谢您的帮助。

【问题讨论】:

  • 你能用test="${cart.cartListEmpty}"试试吗?
  • 另外,if condition then return true else return false 应简化为 return condition
  • @sp00m 谢谢。这似乎已经解决了问题!

标签: java if-statement jstl javabeans


【解决方案1】:

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

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

因此,您需要${cart.cartListEmpty} 来调用相应的isCartListEmpty() 方法。


旁注:

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

【讨论】:

    猜你喜欢
    • 2012-02-10
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    相关资源
    最近更新 更多