Ajax + Spring Webflow

Posted

技术标签:

【中文标题】Ajax + Spring Webflow【英文标题】: 【发布时间】:2012-05-23 02:36:51 【问题描述】:

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

截至目前,我正在让 ajax 调用 webflow 以显示适当的片段。

所以我尝试使用 Spring.AjaxEventDecoration 来满足我的应用程序的 ajax 需求。但是,我在使用这种方法和 webflow 时遇到了一些问题,据我所知,可以使用的示例很少。

附带说明,我没有使用表单或选择框。我想我会提到这一点,因为我发现的每个示例都使用了带有 onlick 事件的表单/表单提交或带有 onchange 事件的选择框。

主要问题:如果我的 webflow 中有一个方法具有来自我的 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 为空。

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

这是预期的吗?谁能解释一下并举个例子?

如果能提供任何帮助,我将不胜感激。

亚当

【问题讨论】:

【参考方案1】:

如果您认为问题来自 ajax 调用,如果您在此处编写 ajax 调用会很有帮助,这样我们可以检查调用是否正确完成。

您可以尝试在进行 ajax 调用时在 data 参数中传递 form serialized。另外,不要忘记在 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",
        ...
);

【讨论】:

我发现了我的问题,它在网络流中。我无法访问我发送的参数,因为 webflow 试图将参数绑定到我不想要的当前模型对象。所以我只需要为这个特定的过渡关闭绑定。不过谢谢你的回复。 @txedo 非常感谢。无需任何其他配置即可为我工作。我没有使用任何“Spring.AjaxEventDecoration”

以上是关于Ajax + Spring Webflow的主要内容,如果未能解决你的问题,请参考以下文章

使用spring webMVC和spring security的ajax登录

spring security ajax登录

求教Spring mvc 处理 ajax问题,在线等

Spring MVC + Ajax 错误 400

spring接收ajax参数的几种方式

AJAX 在 Spring 中获取返回 404