使用<f:ajax>调用<h:commandLink>动作方法

13

我有以下代码:

<h:commandLink action="#{testBean.showSomething}">
    Do Stuff
</h:commandLink>

我想要的功能是改变testbean的状态并重新加载页面,这将显示一组不同的div,因为它们具有“rendered”属性。 现在我想使用ajax来完成这个功能,所以我做了这个:

<h:commandLink action="#{testBean.showSomething}">
    <f:ajax event="click" render=":content" />
    Do Stuff
</h:commandLink>

然而这会导致showSomething方法甚至都没有被调用。 在我看来,我想做的事情相当简单,但是我怎么也想不出如何做到。

1个回答

18
你需要使用event="action"而不是event="click"。你甚至可以完全省略它,因为当嵌套在UICommand组件中时,它是<f:ajax>监听的默认事件。
<h:commandLink action="#{testBean.showSomething}">
    <f:ajax render=":content" />
    Do Stuff
</h:commandLink>

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