レンダリングされた属性を使用して、データテーブルに「x」を表示しています。x は、その値が false であっても毎回出力されます。
<ace:column id="aktiviert" headerText="Aktiviert" sortBy="#{user.aktiviert}" filterBy="#{user.aktiviert}">
<ace:cellEditor>
<f:facet name="output">
<h:outputText value="x" rendered="#{user.aktiviert}"/>
</f:facet>
<f:facet name="input">
<ace:checkboxButton id="aktiviertInput" value="#{user.aktiviert}" />
</f:facet>
</ace:cellEditor>
</ace:column>
前に別の outputText を配置すると、機能します。
<f:facet name="output">
<h:outputText value="" rendered="#{user.aktiviert}"/>
<h:outputText value="x" rendered="#{user.aktiviert}"/>
</f:facet>
x は、バックエンドのブール値が true の場合にのみ表示されるようになりました。最初のアクセスでは、レンダリングされた属性は常に値が true のように機能します。
既知のバグはありますか? これは、icefaces 3.2 から 3.3 への更新以降です。
これはエンティティのゲッターです。
@Column(name = "AKTIVIERT")
public Boolean getAktiviert() {
System.out.println("Aktiviert : " + aktiviert);
if (aktiviert == null) {
return false;
} else {
return aktiviert;
}
}