我正在尝试根据复选框的状态在ManagedBean中执行一些操作。
复选框在这里:
<p:selectBooleanCheckbox id="cb">
<p:ajax listener="#{myBB.checkboxChanged}"/>
</p:selectBooleanCheckbox>
侦听器方法的签名是:
public void checkboxChanged(AjaxBehaviorEvent event)
按预期调用侦听器方法,但我不确定如何获取复选框的状态(如果已选中) 这一直是假的:
((SelectBooleanCheckbox)event.getSource()).isSelected()
我是否需要绑定复选框的值?我想避免这种情况,因为复选框是从循环中的枚举生成的,我没有任何布尔值可以绑定它(模型的设计方式是我添加/删除枚举实例集合,而不是设置布尔属性)
我正在使用Primefaces 3.5
在Tomcat 6.0.36上运行代码JSF实现是Apache Myfaces 2.1.10
答案 0 :(得分:2)
您的代码在Mojarra 2.2.1和PrimeFaces 4.0RC1以及Mojarra 2.0.3和PrimeFaces 3.5上按预期工作。不幸的是我没有2.1方便。您使用的是什么版本的PrimeFaces?你能发布完整的代码吗?
答案 1 :(得分:2)
卢卡斯是对的,一切都很好。问题是我没有把按钮放在表格中。
添加<h:form>
代码后,一切正常。