【问题标题】:Dynamic Transitions in Spring WebFlowSpring WebFlow 中的动态转换
【发布时间】:2014-04-29 00:26:26
【问题描述】:

有人知道是否可以在 Spring Web Flow 定义中定义动态转换吗?

示例 1 - 使用属性文件:

<action-state id="createSubscription" >
    <evaluate expression="myvar" />
    <transition on="$[test.result.valid]" to="subscribeUser-successResponse" />
    <transition                               to="subscribeUser-exceptionResponse" />
</action-state>

示例 2 - 使用变量本身的值:

<action-state id="createSubscription" >
    <evaluate expression="myvar" />
    <transition to="$[myvar]" />
</action-state>

这不是强制性的,但可以帮助设计更通用的流程。

提前感谢大家。

【问题讨论】:

    标签: java spring properties spring-webflow-2


    【解决方案1】:

    你绝对可以为转换“到”做。 假设流 xml 有一些动作和视图状态:

        <action-state id="createSubscription">
            <evaluate expression="myAction.prepareNextState(flowScope.formBean)"/>
            <transition to="${flowScope.formBean.displayNextState}">
        </action-state>
    
        <view-state id="someView" view="someView" model="formBean">
            ...
        </view-state>
    

    带有prepareNextState方法的myAction类如下:

        public class MyAction implements Serializable{
            ....
            public void prepareNextState(FormBean formBean){
                //displayNextState is a String field in FormBean                
                formBean.setDisplayNextState("someView");
            }
            ....
        }
    

    这样我们可以为“to”转换定义通用转换。

    【讨论】:

    • 我现在不能测试它,但它看起来很不错。我将答案标记为正确的答案,期望它有效。谢谢。
    • 我确实实现了一个类似的,虽然通过具有多个按钮的视图状态,其中“到”的转换对于不同的按钮必须是不同的,其中 displayNextState 将是用户单击的按钮;)
    • 唯一的事情是,我们需要确保在调用转换时 displayNextState 不为空。
    • 你确定它有效吗?是否需要对 Web Flow 进行任何特定配置?我试过了,但失败了,不接受任何变量。此外,这是唯一提到动态过渡的地方。不过使用它会很好。
    猜你喜欢
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-08
    • 2013-11-21
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    相关资源
    最近更新 更多