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

我正在使用Spring WebFlow 2,我想知道决策状态与动作状态的差异。

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

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

有人可以对此有所启发

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

例如,

    

这可以使用像这样的action-state进行复制:

      

但是,不同之处在于action-state不仅仅对booleans进行操作 – 它可以触发String (string value)Boolean (yes/no)Enum (enum name) ,其他任何结果都被视为success

因此,与实际必须决定某事decision-state相比, action-state可以简单地用于执行某些代码。

     

我希望能搞清楚。

他们非常相似。 您可以将任何决策状态写为操作状态。 决策状态只为条件转换提供了方便,简洁的语法(使用if元素)。 如果我只需要根据结果评估一个表达式和转换,我使用决策状态。 否则(例如,如果我有多个表达式要评估),我使用一个动作状态。

HTH

你可以使用lambda条件

例如:x = y? “真实结果”:“错误结果”

       

1.令人困惑的情况

在Webflow中,存在可以与类似的方式使用的情况 。 文档显示以下两个表达式是可互换的。



和:




2.什么时候用?

鉴于只能处理处理的子集 – 我们应该在考虑两个候选者时从前者开始。

  1. 旨在用于if-else路由,作为的替代。 它作为关于计票二元决策 。 如果可以应用 – 应该使用它。
  2. 允许处理更复杂的逻辑。 您可以处理exception,您可以执行表达式而不使它们成为条件,并且您可以处理比前者更多的情况。

希望这可以帮助。