Ajax + Spring Webflow

时间:2012-05-15 14:43:01

标签: ajax spring-webflow

首先,我使用spring webflow和一些spring javascript来简化ajax调用。

截至目前,我正在让ajax调用webflow来显示相应的片段。

所以我试图使用Spring.AjaxEventDecoration来满足我的应用程序的ajax需求。但是,我在使用这种方法和网络流程方面遇到了一些麻烦,据我所知,可用的例子非常少。

另一方面,我没有使用表格或选择框。我想我会提到这个,因为我发现的每个例子都使用带有onlick事件的表单/表单提交或带有onchange事件的选择框。

主要问题:如果我的网页流中有一个方法来自我的ajax,我是否可以将参数从ajax传递到webflow?

代码:

<transition on="disassociateProperty" >
     <evaluate expression="dService.disassociateProperty(requestParameters.currentPId ,currentD)"  result="flowScope.currentD" />
<render fragments="PList" />
</transition>

所以,当我查看firebug中的ajax调用时,它有我传入的参数(currentPId)和正确的eventId。

我在disassociateProperty方法的第一行放了一个调试点,它告诉我currentPId为null。

所以我假设webflow中的requestParameters.currentPId没有从ajax调用中提取currentPId。

这是预期的吗?任何人都可以解释并举例说明吗?

感谢您提供的任何帮助。

亚当

1 个答案:

答案 0 :(得分:7)

如果你认为问题来自ajax调用,那么如果你在这里写ajax调用会很有帮助,所以我们可以检查调用是否正确完成。

执行ajax调用时,您可以尝试在data参数中传递表单序列化。另外,不要忘记在URL中添加 ajaxSource 参数。希望这有帮助。

HTML示例:

<form id="formId" method="post" action="${flowExecutionUrl}&_eventId=disassociateProperty">
    <input type="text" id="currentPId" />
</form>

jQuery示例:

$.ajax({
        type: "POST",
        data: $("#formId").serialize(),
        url: $("#formId").attr("action") + "&ajaxSource=true",
        ...
});