Java SpringWebFlow-决策状态与操作状态
我使用的是SpringWebflow2,我想知道决策状态和动作状态的区别 我正在阅读,不明白决策状态和行动状态的区别。我知道视图状态将显示一个用于输入的jsp,但是决策状态和操作状态的区别是什么 为什么我应该使用决策状态而不是操作状态? 为什么我应该使用动作状态而不是决策状态Java SpringWebFlow-决策状态与操作状态,java,spring,spring-webflow,Java,Spring,Spring Webflow,我使用的是SpringWebflow2,我想知道决策状态和动作状态的区别 我正在阅读,不明白决策状态和行动状态的区别。我知道视图状态将显示一个用于输入的jsp,但是决策状态和操作状态的区别是什么 为什么我应该使用决策状态而不是操作状态? 为什么我应该使用动作状态而不是决策状态 有人能解释一下吗?通常,决策状态专门用于布尔条件。关于它发生的事情,它更清楚、更简洁 比如说, <decision-state id="myDecisionState"> <if test="my
有人能解释一下吗?通常,
决策状态
专门用于布尔条件。关于它发生的事情,它更清楚、更简洁
比如说,
<decision-state id="myDecisionState">
<if test="myBooleanFunction()" then="resultIsTrueState" else="resultIsFalseState" />
</decision-state>
然而,不同之处在于,操作状态
不仅仅对布尔值进行操作-它可以触发字符串(字符串值)
,布尔值(是/否)
,枚举(枚举名称)
上的转换,任何其他结果都被视为成功
因此,与实际必须决定某事的决策状态相比,操作状态可以简单地用于执行某些代码
<action-state id="myActionState">
<evaluate expression="myFunction()" />
<transition on="success" to="myNextState" />
</action-state>
我希望这能澄清问题。它们非常相似。您可以将任何决策状态编写为操作状态。Decision state只是为条件转换提供了一种方便、简洁的语法(使用if
元素)。如果我只需要根据结果计算一个表达式和转换,我将使用决策状态。否则(例如,如果要计算多个表达式),则使用动作状态
HTH您可以使用lambda条件
示例:x=y?“真实结果”:“错误结果”
1。混淆案例
在Webflow中,可以以类似的方式使用,因为表明以下两个表达式是可交换的
以及:
2。何时使用什么?
鉴于只能处理处理的部分,我们在考虑两名候选人时应该从前者开始
用于if-else路由,作为替代。它在Rouning上充当一个二元决策。如果可以应用,就应该使用它
允许处理更复杂的逻辑。您可以处理异常,可以执行表达式而不使它们成为条件,并且可以处理比前一种情况更多的情况
希望这有帮助
<action-state id="myActionState">
<evaluate expression="myFunction()" />
<transition on="success" to="myNextState" />
</action-state>