首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Webflow -决策状态与动作状态

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

Stack Overflow用户
提问于 2012-08-17 04:18:24
回答 4查看 25.9K关注 0票数 16

我使用的是SpringAction2,我想知道决策状态和WebFlow状态的区别。

我正在阅读,并不理解决策状态和动作状态的区别。我知道视图状态将显示一个jsp作为输入,但是决策状态和动作状态有什么不同呢?

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

有没有人能帮我照亮一下?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-17 04:43:13

通常,decision-state专门用于布尔条件。它更清楚和简洁地说明了它发生了什么。

例如,

代码语言:javascript
复制
<decision-state id="myDecisionState">
    <if test="myBooleanFunction()" then="resultIsTrueState" else="resultIsFalseState" />
</decision-state>

这可以使用action-state进行复制,如下所示:

代码语言:javascript
复制
<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可以简单地用来执行一些代码。

代码语言:javascript
复制
<action-state id="myActionState">
    <evaluate expression="myFunction()" />
    <transition on="success" to="myNextState" />
</action-state>

我希望这能把事情说清楚。

票数 32
EN

Stack Overflow用户

发布于 2017-01-05 22:47:06

1.令人困惑的

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

和:

2.什么时候使用什么?

鉴于只能处理处理的部分内容-我们在考虑两个候选者时应该从前者开始。

  1. 旨在用于if-else路由,作为的替代。它的工作原理是对进行舍入的二进制决策。如果可以应用,就应该使用。
  2. 允许处理更复杂的逻辑。您可以处理异常,可以执行表达式而不使其具有条件,并且您可以处理比前一种情况更多的情况。

希望这能有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2012-08-17 06:11:35

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

HTH

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11994847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档