在同一个按钮上同时使用JSF ajax和setPropertyActionListener标记
我希望当用户点击按钮时,会发生以下事情:
- 首先触发
setPropertyActionListener
,以更新我的bean的属性 - 然后进行ajax调用以从bean执行方法
似乎我必须在f:setPropertyActionListener
标记和f:ajax
标记之间进行选择,以嵌套在commandButton标记内。
有没有办法同时执行ajax调用和属性更新?
非常感谢!
编辑:我忘了提到我不想要一个表单执行,我想使用ajax监听器,这里是我的代码:
使用此代码,不执行f:setPropertyActionListener
。
编辑2:
我使用动作表单方法而不是监听器将我的代码修改为以下代码。 现在它只有在我没有在ajax标记上指定事件属性时才有效,但是当我指定一个时,不执行action方法。
适用于Tomcat 7.0.19和Glassfish 3.1.1的Mojarra 2.1.3。
我使用了这个相关的视图:
用这个相关的豆片:
private String value; public void submit() { System.out.println("Value: " + value); } // Getter/setter.
在ajax提交上打印以下内容:
价值:foo
你的问题是由你遗漏了问题的其他东西引起的。
更新 :根据您的更新
我忘了提到我不想要表单执行,我想使用ajax监听器,这里是我的代码:
我真的不明白为什么你不想要“表格执行”。 您正在提交表单。 您只是省略了操作方法,而是在ajax事件侦听器中执行业务工作。 动作监听器方法并不打算从事任何业务工作,它们最高的是一些自包含处理或日志记录工作。 依赖于模型的业务工作应该在action方法中完成。