我将其标记为副本而不是删除它,因为我认为它仍然可以帮助某人。
我想我犯了一些愚蠢的错误,但<c:if>
中的代码会执行,尽管test中的表达式应该评估为false。
注意:我知道在使用jstl时应该有${...}
而不是#{...}
,但我也尝试过这种方式,似乎没有区别。
<c:if test="#{(auction.isActive==0)}">
<h:column>
<f:facet name="header">Auction Number</f:facet>
#{(auction.isActive)} //PRINTS 1
</h:column>
</c:if>
我做错了什么? 我使用的是JSF - 代码用于.xhtml页面。
我的包括:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:df="http://java.sun.com/jsf/composite/dreamcar_functions"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core">
很抱歉,如果这看起来很基本,但我正在用java-ee完成我的第一步。
编辑 - isActive的getter和setter:
public int getIsActive() {
return isActive;
}
public void setIsActive(int isActive) {
this.isActive = isActive;
}
看看我做的这个测试。我将auction.isActive == 0更改为auction.isActive以生成错误,告诉我有关auction.isActive的详细信息。这里的值似乎是0:
/add_offer.xhtml @29,39 test="#{auction.isActive}" /add_offer.xhtml @29,39 test="#{auction.isActive}": Cannot convert 0 of type class java.lang.Integer to class java.lang.Boolean