【发布时间】:2010-12-01 09:21:07
【问题描述】:
如何通过 jQuery AJAX 调用 JSF 动作方法?
【问题讨论】:
-
更具体...arrrgghhh
-
问题很简单。无法进一步展开。
-
Facelets。实际上想通过 a4j:jsfunction 进行同步 ajax 调用。但是其中没有选项。所以想通过 jQuery 来做。
如何通过 jQuery AJAX 调用 JSF 动作方法?
【问题讨论】:
直接通过 AJAX 调用 JSF 视图是不明智的,除非您的 JSF 堆栈支持 AJAX,并且您知道如何以堆栈可以理解的方式构造请求。此处的错误可能会导致视图状态出现问题并且难以诊断错误。
Core JSF 1.2(及之前)没有直接的 AJAX 支持; 3rd party frameworks 提供不同程度的 AJAX 支持。 JSF 2 将 AJAX JavaScript 库添加到核心框架 (David Geary demonstrates),因此请尽可能使用它。
解决这一切的一种方法是使用 servlet 直接与模型交互(即不回发到 JSP/Facelet 视图)。这可能就足够了,具体取决于您正在做什么。
【讨论】:
您是否尝试过使用a4j:jsFunction 的data 属性来返回值?这将模拟同步调用。
例如。
<a4j:jsFunction action="#{myBean.someAction}" data="#{myBean.someResult}" name="whatever" reRender="something"/>
【讨论】: