【问题标题】:Is it possible to get the stack of subflows in spring webFlow是否可以在spring webFlow中获取子流堆栈
【发布时间】:2012-07-28 20:54:29
【问题描述】:

在我们的应用程序中,我们使用 Spring WebFlow 在站点中导航用户。在某些页面中,我需要知道我从哪个流开始当前子流。有没有什么简单的方法可以在 Spring WebFlow 中获取这些信息?

我正在使用 Spring WebFlow 2.0.9 版,很遗憾无法升级到更新版本。

简单示例:

我的页面 foo/foo.xhtmlfoo/flow.xml 调用,bar/bar.xhtmlbar/flow.xml 调用。
最后我有baz/baz.xhtml 有一个baz/flow.xml。这被称为 foo 流或 bar 流的子流。在 baz flow 的支持 bean 中,我需要查看“历史”我如何称呼我的 baz/flow.xml

为这个问题找到了解决方案:
您也可以实现自己的 FLowExecutionListener,当您输入 StateDefinition 时,您可以检查它是否是 SubflowState 的实例并获取父级的名称。那么也许你可以把那个变量放在 FlowScope 中以在你的状态下使用它——rptmat57

【问题讨论】:

    标签: navigation spring-webflow


    【解决方案1】:

    如何在每个子流中设置的原始流上使用输入?
    baz/flow.xml

    <input name="comingFrom" type="string">

    foo/flow.xml:

    <subflow-state id="subFlowFoo" subflow="baz">
    <input name="comingFrom" value="Foo" type="string"/>
    ...
    </sublfow-state>

    bar/flow.xml:

    <subflow-state id="subFlowBar" subflow="baz">
    <input name="comingFrom" value="Bar" type="string"/>
    ...
    </sublfow-state>

    【讨论】:

    • 是的,也就是说,我同时是怎么做的,但是这个解决方案并不像我想要的那样整洁。万一我有另一个流程或更深的结构,到处填充输入变量将是一个开销。
    • 是的,您可以连接字符串以获得整个堆栈,但它仍然不是最好的。
    • 你也可以实现自己的 FLowExecutionListener,当你输入一个 StateDefinition 时,你可以检查它是否是 SubflowState 的实例并获取父级的名称。那么也许您可以将该变量放入 FlowScope 中以在您的状态下使用它
    • 嗯,这是个好主意。这可能是一个解决方案,不需要更改流配置 XML,但可以正常工作!谢谢你的提示。我会检查这个答案是否已解决,因为你的观点是值得的!再次感谢
    猜你喜欢
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 2014-10-23
    相关资源
    最近更新 更多