2012-05-15 55 views
8

首先,我使用spring webflow和一些spring的javascript来使ajax调用更容易。Ajax + Spring Webflow

截至目前,我正在让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> 

所以,当我看到在萤火Ajax调用,它有我传递(currentPId)的参数和正确的事件ID。

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

所以我会假设webflow中的requestParameters.currentPId不是从ajax调用拉currentPId。

这是预期吗?任何人都可以解释并举个例子吗?

我希望提供任何帮助。

亚当

回答

7

如果您认为问题来自Ajax调用,如果你写在这里的Ajax调用这将是有益的,这样我们就可以检查呼叫正在做正确。

执行ajax调用时,您可以尝试在数据参数中传递窗体序列化的。另外,请不要忘记在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", 
     ... 
}); 
+2

我想通了,我的问题,它是在一个Webflow。我无法访问我发送的参数,因为webflow试图将参数绑定到我当前的模型对象,这是我不想要的。 所以我只是不得不关闭这个特定的过渡。 但谢谢你的回复。 – Adam

+0

@txedo非常感谢。这对我来说没有任何其他配置。我没有使用任何“Spring.AjaxEventDecoration” – Razib