【发布时间】:2014-08-09 09:20:58
【问题描述】:
我正在使用 JSF 2 和 Primefaces 4 并遇到以下问题:
我的 XHTML 中有以下代码:
<h:form id="form">
<table>
<tr id="formats">
<td>Formats</td>
<td>
<p:selectBooleanCheckbox value="#{bean.entity.formatted}">
<p:ajax event="change" update="formatsSelect" />
</p:selectBooleanCheckbox>
<p:selectOneMenu id="formatsSelect" rendered="#{bean.entity.formatted}">
<f:selectItems value="#{bean.formats}" />
</p:selectOneMenu>
</td>
</tr>
</table>
</h:form>
它输出一个复选框和一个选择菜单,我期望的是,当我选中复选框时,选择菜单应该出现,当我取消选中它时应该消失....但是没有任何反应,我选中并取消选中它并选择菜单不受影响。
理论上这应该有效,因为 selectBooleanCheckbox 值绑定到 entity.formatted 布尔值,并且 selectOneMenu 中呈现的值绑定到 entity.formatted 值,并且 p:ajax 指向更新属性中的正确 id并且事件是正确的。这是我知道的最后一点,因为我在我的 bean 中创建了一个监听器,它打印了 formatted 的值:
public void changeListener(){
System.out.println(this.entity.isFormatted());
}
并将 p:ajax 更改为:
<p:ajax event="change" update="formatsSelect" listener="#{bean.changeListener}" />
它在控制台中打印了 formatted 的值。 我做错了什么?
【问题讨论】:
标签: ajax jsf primefaces