我目前有一个 .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()
方法。
旁注:
- 无需添加
eq true
部分自isCartListEmpty()
已经返回一个 boolean 值。 - 您可以(应该?)简化您的
isCartListEmpty()
方法主体为return this.cart.isEmpty()
.
关于java - JSTL <c :if> tag - Checking whether Java Bean method returns True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23007409/