我使用Spring Webflow和Spring JS开展项目。
我读到在SWF中使用on-render
来在每次显示页面时执行方法,并且on-entry
仅在第一次显示时执行。
所以我在一个视图状态中声明了一个表达式来评估第一次显示网页的时间和过渡时间:
<view-state id="whatever" model="myModel" view="myView">
<on-entry>
<evaluate expression="controller.methodToCallOnEntry()" />
</on-entry>
<transition on="myTransition" to="whatever">
<evaluate expression="controller.methodToCallAjax()"/>
<render fragments="myFragment" />
</transition>
</view-state>
在网页中,有一个javascript函数,它发送一个Ajax请求来加载一些数据。声明如下:
var params={};
params["fragments"] ="myFragment";
params["_eventId"] = "myTransition";
Spring.remoting.submitForm("","formid", params);
我的问题是在每个Ajax请求之后呈现片段methodToCallOnEntry()
时执行方法myFragment
。我希望它只在第一次显示页面时,在我的视图状态的入口处执行。你有关于它的任何信息吗?
答案 0 :(得分:3)
我认为你的问题来自你的过渡标签。 因为&#34; To&#34;属性spring重新加载viewstate。 所以删除&#34; To&#34;应该解决你的问题。