f:ajax监听器未被h:selectBooleanCheckbox调用

4

使用以下代码:

<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论坛中提问。

你的监听器方法签名是否匹配 public void processAjaxBehavior(javax.faces.event.AjaxBehaviorEvent event) - Matt Handy
@Matt Handy:谢谢,我已经更新了我的帖子,是的,我有那个签名。 - Bertie
1个回答

4

这里有一个类似问题的答案

问题在于将复选框放置在p:dataList中,但未将其封装在p:column中。

将其包裹在p:column中后,监听器将正常被调用。

希望能对你有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接