0

我在一个使用 Spring Webflow 和 Spring JS 的项目上工作。

我读到on-render了 SWF 中使用的方法,用于在每次显示页面时执行方法,并且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我希望它仅在页面第一次显示时执行,在我的视图状态的入口处。你有任何关于它的信息吗?

4

1 回答 1

3

我认为您的问题来自您的过渡标签。由于“To”属性弹簧重新加载视图状态。因此,删除“To”应该可以解决您的问题。

于 2014-08-01T13:04:53.520 回答