Spring Webflow +表单提交/ AJAX调用

时间:2018-08-30 20:34:50

标签: ajax html5 spring-webflow

我想使用AJAX /表单提交来调用Webflow,但我无法这样做。 响应对控制器的AJAX调用,我得到了一个自定义对象列表。我必须通过AJAX将此对象列表传递给另一个HTML,在这里我可以访问该对象列表并对其进行迭代以以表格形式显示在UI上。该表将有2列,一列为Name,第二列为Date。在“名称”列下,我必须将名称显示为带有URL的锚标记。用户单击此超链接后,他/她将重定向到控制器并采取进一步的措施。

注意:我无法使用页面上的任何按钮/链接。

原因为何我必须使用Ajax而不是通过触发事件来调用控制器,这是因为我必须进行CORS调用,并且由于安全性问题,只能通过浏览器调用而不是服务器端调用,下面是总体流程,以供您进一步理解: 1.拨打AJAX到另一个域并获取数据。 2.成功响应后,将这些数据通过请求映射传递给非Webflow控制器。该控制器返回模型。 3.收到控制器的成功响应后,即自定义对象列表必须将这些值传递给另一个HTML,该HTML将遍历对象列表并以表格形式显示它们。

在第二个HTML中,我正在使用JSTL标记,该标记在服务器端被调用,因此脚本中接收到的数据不能在此处使用,因为脚本在客户端运行。在第二个HTML中使用这些值的唯一方法是通过引入另一个控制器/访问Webflow将数据放入流范围。

下面是我的webflow XML。

`<view-state id="firstPage" view="firstPage" >
<transition on="nextpage" to="controller"/> 
</view-state>

<action-state id="controller" >
<evaluate expression="controller.doSomething()"
<transition on="success" to="makeDecision" />
</action-state>

下面是我在页面中的代码,我尝试了两种方式提交表单并调用Webflow: 1.通过表单提交的第一种方式,通过AJAX进行的第二种方式:。

`<form id="myForm" method="post" action="${flowExecutionUrl}&_eventId=nextpage">
<input type="hidden" name="firstParam" value="listOfObjects"/>
<input type="hidden" name="secondParam" value="listsize"/>
</form>

<script type="text/javascript">
$(document).ready(function () {
$('#myForm').submit();
}
</script>`

<script type="text/javascript"> $(document).ready(function () { $('input[name="_eventId"]').val('nextpage');$.post('${flowExecutionUrl}', {list:listOfObjects,size:listsize}, function() { return true; }); }); </script>

在两种情况下,控制器都无法获得流量。

我们非常感谢您的帮助。谢谢

0 个答案:

没有答案