3

我正在尝试根据复选框的状态在 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

4

2 回答 2

2

您的代码在 Mojarra 2.2.1 和 PrimeFaces 4.0RC1 以及 Mojarra 2.0.3 和 PrimeFaces 3.5 上按预期工作。不幸的是,我手头没有 2.1。您使用的是哪个版本的 PrimeFaces?你能发布你的完整代码吗?

于 2013-09-18T14:32:17.750 回答
2

卢卡斯是对的,一切都很好。问题是我没有把按钮放在表单中。

添加<h:form>标签后,一切正常。

于 2013-09-18T17:49:14.037 回答