Java SpringWebFlow-决策状态与操作状态

Java SpringWebFlow-决策状态与操作状态,java,spring,spring-webflow,Java,Spring,Spring Webflow,我使用的是SpringWebflow2,我想知道决策状态和动作状态的区别 我正在阅读,不明白决策状态和行动状态的区别。我知道视图状态将显示一个用于输入的jsp,但是决策状态和操作状态的区别是什么 为什么我应该使用决策状态而不是操作状态? 为什么我应该使用动作状态而不是决策状态 有人能解释一下吗?通常,决策状态专门用于布尔条件。关于它发生的事情,它更清楚、更简洁 比如说, <decision-state id="myDecisionState"> <if test="my

我使用的是SpringWebflow2,我想知道决策状态和动作状态的区别

我正在阅读,不明白决策状态和行动状态的区别。我知道视图状态将显示一个用于输入的jsp,但是决策状态和操作状态的区别是什么

为什么我应该使用决策状态而不是操作状态? 为什么我应该使用动作状态而不是决策状态


有人能解释一下吗?

通常,
决策状态
专门用于布尔条件。关于它发生的事情,它更清楚、更简洁

比如说,

<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>