f:ajax监听器没有调用h:selectBooleanCheckbox

时间:2011-07-20 10:34:17

标签: jsf jsf-2 primefaces

使用这样的代码:

<h:selectBooleanCheckbox value="#{user.data['selected']}">
      <f:ajax event="click" listener="#{timetableBean.processUserEvents}"  />
      <f:attribute name="user" value="#{user}" />
</h:selectBooleanCheckbox>

方法代码是:

public void processUserEvents(AjaxBehaviorEvent e) {
  User user = (User) e.getComponent().getAttributes().get("user");
  ...
}

单击该复选框会触发ajax提交,但根本不会调用侦听器方法。 最重要的是,没有错误消息,并且阶段正常完成。

我正在尝试mojarra 2.0.4-b09,在遇到此错误后,我改为2.1.2,但同样的问题仍然存在。

我有什么问题吗?

谢谢。


更新

问题是将h:selectBooleanCheckbox放在primefaces datalist(p:dataList)中。放在外面工作正常。我想知道问题是什么。现在将在primefaces论坛上提问。

1 个答案:

答案 0 :(得分:4)

这里有the answer of a similar problem

问题实际上是将复选框放在p:dataList中而不将其封装在p:列中。

用p:列包装后,将正常调用侦听器。

希望它有所帮助!