【问题标题】:If & Else statement in webflow inside of a view-state视图状态内的 webflow 中的 If & Else 语句
【发布时间】:2013-08-22 06:13:54
【问题描述】:

我有以下view-state

<view-state id="editbestellung" view="eap/orderedit.xhtml"
    model="flowScope.entity">
    <transition on="save" to="eaporderlist" bind="true">
        <evaluate
            expression="eapBestellungDelegate.save(flowScope.entity,currentUser.name)" />
    </transition>
</view-state>

没有其他地方我在 true 上设置了 flowScope.isToDo
现在我需要检查这个 flowScope 是否为真。如果是,transition 应该重定向 to="eapordertodolist",如果它是 false,它应该转到 to="eaporderlist"
但我只知道如何设置这样的 if 语句:

<if test="testingMethod()" then="view-state when true" else="view-state when false" />

那么如何在上面的视图状态中实现 if 语句并执行所需的操作?

【问题讨论】:

  • 您何时将flowScope.isToDo 设置为true?在保存方法中?
  • 没有。但是变量会在流程的整个生命周期中保持不变...
  • 你想在保存方法之后检查吗?

标签: spring spring-webflow


【解决方案1】:

使用Decision-States

使用决策状态元素作为操作状态的替代,以使用方便的 if/else 语法做出路由决策。下面的示例显示了上面的 moreAnswersNeeded 状态现在实现为决策状态而不是动作状态

您的editbestellung-state 将如下所示(注意我更改了to):

<view-state id="editbestellung" view="eap/orderedit.xhtml"
    model="flowScope.entity">
    <transition on="save" to="eaporderdecision" bind="true">
        <evaluate
            expression="eapBestellungDelegate.save(flowScope.entity,currentUser.name)" />
    </transition>
</view-state>

然后添加决策状态:

<decision-state id="eaporderdecision">
    <if test="flowScope.isToDo" then="eapordertodolist" else="eaporderlist" />
</decision-state>

【讨论】:

  • 我使用的正是这个 if 语句...?问题是,我已经对声明进行了转换。我需要更改此过渡的 to= 部分。我不知道该怎么做
  • 点击链接。有一个很好的解释。你需要一个额外的状态来处理决定
  • @PhilippSander 只是一个理解问题:是否有必要创建一个方法?包含真/假的flowScope 还不够吗?目前无法测试...
  • 老实说:我不确定!
  • 您不需要创建方法。您可以直接测试范围内的值。
猜你喜欢
  • 1970-01-01
  • 2013-07-21
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
  • 2015-10-28
  • 1970-01-01
相关资源
最近更新 更多