我有一个可以返回多个事件的视图状态。对于他们中的大多数人来说,我想要“评估”一种常见的jave方法。我想做一些与众不同的事情很少。但是,每个事件都将转换到不同的状态。我的网络流程代码现在重复多次评估方法,每次适用的转换一次。当然,如果我想总是评估该方法,我可以在出口处调用它,但由于我不想在所有情况下都这样做,我在转换调用中不得不重复它。还有其他办法吗?
谢
答案 0 :(得分:0)
这听起来像是一种情况,您可以考虑将当前在流XML本身中编码的一些逻辑移动到对Action POJO的调用中。也许是对on-exit上的Action的单个调用,传入流请求上下文并让Action方法本身(从请求参数中)确定是否应该调用您的常用Java方法。
这样的事情:
<view-state id="home" view="home">
<transition on="foo" to="fooView" />
<transition on="bar" to="barView" />
...
<on-exit>
<evaluate expression="fooAction.invokeIfNecessary(flowRequestContext)" />
</on-exit>
</view-state>
答案 1 :(得分:0)
转换到决策状态评估那里,而不是使用currentEvent.id转换到原始目标smt,如:
<decision-state id="decision">
<on-entry>
<evaluate ...
</on-entry>
<if test="currentEvent.id=='goruntule'" then="goruntule"/>
<if test="currentEvent.id=='guncelle'" then="guncelle"/>
<if test="currentEvent.id=='sil'" then="sil"/>
</decision-state>