Spring webflow, transist only if statement is true

Spring webflow, transist only if statement is true

我希望我的流程仅在某些陈述为真时才传输,否则它应该停留在同一页面(在同一视图状态)。我的问题是,如果我使用不带 else 子句的决策状态,我将停留在该决策状态,因此如果我再次使用之前的操作,它将不会被识别。我可以使用重定向到以前的视图状态,但这会使我的视图重新加载。

一些例子:

<view-state id="myState" view=someView.xhtml">
  <transition on="myAction" to="decision"/>
</view-state>

<decision-state id="myDecision">
  <if test="controller.isOk()" then="nextPage"/>
</decision-state>
  1. 在 myState 我执行 myAction
  2. myDecision 调用 'controller.isOk()'
  3. 结果为假,所以我没有被重定向到任何地方
  4. 我再次执行了一个 myAction 但是 'myAction'
  5. 没有转换

我也试过动作状态,但我不想为 'no' 情况定义转换,它会产生错误。

你可以put calls inside <evaluate> inside a <transition>, and if the call doesn't return "success", which is "success", "yes", or "true", the flow will remain on the same state

所以试试这个:

<view-state id="myState" view="someView.xhtml">
    <transition on="myAction" to="nextPage>
        <evaluate expression="controller.isOk()"/>
    </transition>
</view-state>