【发布时间】:2011-10-22 17:08:01
【问题描述】:
我希望当用户点击一个按钮时会发生 2 件事:
- 首先触发
setPropertyActionListener,以更新我的bean的属性 - 然后进行 ajax 调用以执行 bean 中的方法
看来我必须在f:setPropertyActionListener标签和f:ajax标签之间进行选择才能嵌套在commandButton标签内。
有没有办法同时执行ajax调用和属性更新?
非常感谢!
编辑:我忘了说我不想执行表单,我想使用 ajax 监听器,这是我的代码:
<h:commandLink styleClass="blue-button" value="+">
<f:setPropertyActionListener target="#{tvShowForm.selected}" value="#{tvShow.externalId}" />
<f:ajax event="click" listener="#{tvShowForm.add}" />
</h:commandLink>
使用此代码,f:setPropertyActionListener 不会被执行。
编辑 2:
我将代码修改为以下内容,使用操作表单方法而不是侦听器。现在它只有在我没有在ajax标签上指定一个事件属性时才有效,但是当我指定一个时,动作方法不会被执行。
<h:commandLink action="#{tvShowForm.add}" styleClass="blue-button" value="+">
<f:setPropertyActionListener target="#{tvShowForm.selected}" value="#{tvShow.externalId}" />
<f:ajax event="click" />
</h:commandLink>
【问题讨论】:
-
他们会的。具体问题是什么?