如何将值传递给ajax监听器primefaces

12

所以我有

<p:ajax event="tabChange" listener="#{refriedBean.onTabChange}" />

但我想传递tabChange事件和存储在页面上的额外值。

public void onTabChange(TabChangeEvent event, Object obj)

怎么做才能实现这个?

1个回答

9
您可以在 AJAX 请求中使用 bean 的附加属性替换参数 obj,并将所需的值设置为此属性。
<p:ajax event="tabChange" listener="#{refriedBean.onTabChange}">
  <f:setPropertyActionListener target="#{refriedBean.additionalProperty}" value="value_here"/>
</p:ajax>

请查看setPropertyActionListener文档。


嵌套不是必须的。它将被应用于父组件。 - BalusC
2
它必须嵌套,因为父级必须是ActionSource类型。此外,它似乎没有起作用。我在refriedBean中创建了一个名为additionalProperty的值,并给它一个getter和setter。 - Landister
4
@Angelo.Hannes 在 Stack Overflow 上提出的问题是: f:setPropertyActionListener 不设置值,但是操作已经被触发。 - kolobok
1
我不明白为什么这个答案被点赞了。我只是想引用和akapelko相同的链接... - marcel
这对我也不起作用。Bean属性在监听器处理程序之前没有设置。 - Kragh

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