Spring Webflow - 决策状态与动作状态

Joh*_*ith 15 java spring spring-webflow

我正在使用Spring WebFlow 2,我想知道决策状态与动作状态的区别.

我正在阅读并且不理解决策状态与行动状态的区别.我理解视图状态会显示一个输入的jsp,但是决策状态与动作状态的区别是什么?

我为什么要在行动状态下使用决策状态?为什么我应该在决策状态下使用动作状态?

有人可以对此有所了解

Ian*_*hop 30

通常,decision-state专门用于布尔条件.关于它发生了什么,它更清晰简洁.

例如,

<decision-state id="myDecisionState">
    <if test="myBooleanFunction()" then="resultIsTrueState" else="resultIsFalseState" />
</decision-state>
Run Code Online (Sandbox Code Playgroud)

这可以使用action-state类似的方式复制:

<action-state id="myActionState">
    <evaluate expression="myBooleanFunction()" />
    <transition on="yes" to="resultIsTrueState" />
    <transition on="no" to="resultIsFalseState" />
</action-state>
Run Code Online (Sandbox Code Playgroud)

然而,不同的是,action-state不只是针对布尔操作-它可以触发转换String (string value),Boolean (yes/no),Enum (enum name)与任何其他的结果被认为是success.

因此,与decision-state实际必须决定的东西形成对比,action-state可以简单地用于执行某些代码.

<action-state id="myActionState">
    <evaluate expression="myFunction()" />
    <transition on="success" to="myNextState" />
</action-state>
Run Code Online (Sandbox Code Playgroud)

我希望能搞清楚.