我使用的是SpringAction2,我想知道决策状态和WebFlow状态的区别。
我正在阅读,并不理解决策状态和动作状态的区别。我知道视图状态将显示一个jsp作为输入,但是决策状态和动作状态有什么不同呢?
为什么我要使用决策状态而不是动作状态?为什么我要使用动作状态而不是决策状态?
有没有人能帮我照亮一下?
发布于 2012-08-17 04:43:13
通常,decision-state专门用于布尔条件。它更清楚和简洁地说明了它发生了什么。
例如,
<decision-state id="myDecisionState">
<if test="myBooleanFunction()" then="resultIsTrueState" else="resultIsFalseState" />
</decision-state>这可以使用action-state进行复制,如下所示:
<action-state id="myActionState">
<evaluate expression="myBooleanFunction()" />
<transition on="yes" to="resultIsTrueState" />
<transition on="no" to="resultIsFalseState" />
</action-state>然而,不同的是,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>我希望这能把事情说清楚。
发布于 2017-01-05 22:47:06
1.令人困惑的
在Webflow中,可以使用与类似的方式使用。documentation显示以下两个表达式是可互换的。
和:
2.什么时候使用什么?
鉴于只能处理处理的部分内容-我们在考虑两个候选者时应该从前者开始。
希望这能有所帮助。
发布于 2012-08-17 06:11:35
它们非常相似。您可以将任何决策状态编写为操作状态。决策状态只是为条件转换提供了一种方便、简洁的语法(使用if元素)。如果我只需要根据结果计算一个表达式和转换,我使用决策状态。否则(例如,如果我有多个表达式要计算),我使用动作状态。
HTH
https://stackoverflow.com/questions/11994847
复制相似问题