【问题标题】:p:commandButton ajax not called inside p:dataListp:commandButton ajax 未在 p:dataList 中调用
【发布时间】:2011-10-09 08:53:14
【问题描述】:

Primefaces 2.2.1

Mojarra 2.1.2

我的 jsf bean 中有一个复杂的方法:

public void saySomething() {
   log.debug("SAY SOMETHING !");
}

还有一个简单的 jsf 按钮:

<p:commandButton
   value="say something"
   process="@this" update="@none" action="#{timetableBean.saySomething}" />

点击按钮,我的简单日志记录:

DEBUG PhaseTracker - BEFORE PHASE INVOKE_APPLICATION 5
DEBUG TimetableBean - SAY SOMETHING !
DEBUG PhaseTracker - AFTER PHASE INVOKE_APPLICATION 5

让我们转到下一个简单的案例。 当像这样将相同的按钮放在 p:dataList 中时:

<p:dataList id="groupUsers2" value="#{timetableBean.group.users}" var="user" itemType="circle" style="padding:0; margin: 0;">
   <p:commandButton
      value="#{user.data['selected'] ? 'V' : 'X'}"
      process="@this" update="@none" action="#{timetableBean.saySomething}" />
   <p:commandLink value="#{user.userId} - #{user.name}" process="@this" />
</p:dataList>

点击按钮,我的简单日志记录:

DEBUG PhaseTracker - BEFORE PHASE INVOKE_APPLICATION 5
DEBUG PhaseTracker - AFTER PHASE INVOKE_APPLICATION 5

saySomething() 的方法没有被调用!

我做错了什么?

【问题讨论】:

  • 问题可能出在process 属性上。这是什么意思,因为将为#{timetableBean.group.users} 的每个元素创建一个commandButton 组件。 @this 应该实际处理什么?
  • @maple_shaft:我把它改成了process="@form",还是不行,监听方法没有被调用..

标签: jsf-2 primefaces


【解决方案1】:

问题解决了。

here找到解决方案

为了调用监听器,p:dataList中的组件应该用p:column封装

<p:dataList id="groupUsers2" value="#{timetableBean.group.users}" var="user" itemType="circle" style="padding:0; margin: 0;">
  <p:column>
   <p:commandButton
      value="#{user.data['selected'] ? 'V' : 'X'}"
      process="@this" update="@none" action="#{timetableBean.saySomething}" />
   <p:commandLink value="#{user.userId} - #{user.name}" process="@this" />
  </p:column>
</p:dataList>

奇怪的是,我没有在文档中看到这一点,因为它没有指定 p:column。也许它在 primefaces 2.2.1 文档的勘误表中?

相关问题here.

【讨论】:

  • 是的,我也没有在 2.2.1 文档中看到它。对不起,我没有更多的帮助。
  • @Cagatay Civici:嗨,擎天柱。在我的 2.2 文档中,p.118 正在谈论 ajax 分页,但我仍然没有看到它在谈论 p:column。也许它是隐含的?
  • @maple_shaft:谢谢。感谢您的努力!
猜你喜欢
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
  • 2017-11-23
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 2013-07-28
  • 1970-01-01
相关资源
最近更新 更多