java - JSTL <c :if> tag - Checking whether Java Bean method returns True

标签 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 的正确方法吗?

感谢您的帮助。

最佳答案

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

所以就你而言,${cart.isCartListEmpty}将寻找一个方法 getIsCartListEmpty()isIsCartListEmpty()在你的cart .

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


旁注:

  1. 无需添加 eq true部分自 isCartListEmpty()已经返回一个 boolean 值。
  2. 您可以(应该?)简化您的isCartListEmpty()方法主体为return this.cart.isEmpty() .

关于java - JSTL <c :if> tag - Checking whether Java Bean method returns True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23007409/

相关文章:

java - 如何保证 session 属性的线程安全

java - 识别两条线的交点

jquery - 检查元素的可见性

java - 我怎样才能做长值的for循环

java - Kotlin、Java、JSTL boolean 互操作

java - c :foreach using List: Must evaluate to a Collection, 映射、数组或 null

spring - 在spring mvc中将多个参数从 View 传递给 Controller

java - 如何刷新JList中的列表

java.lang.ClassCastException : [Ljava. lang.Object 或 LazyInitializationException 异常

python - 你可以在 Python 中的数组的大括号内使用 if-else 语句吗?