【问题标题】:How to send parameters SubFlow in Spring WebFlow如何在 Spring WebFlow 中发送参数 SubFlow
【发布时间】:2012-12-06 18:58:57
【问题描述】:

我有主要的路线流程:

<view-state id="addRoute" model="route">

...
    <transition on="editBlock" to="editBlock" validate="false" bind="true">
       ...
    </transition>

</view-state>

<subflow-state id="editBlock" subflow="block">

</subflow-state>

通过单击 editBlock 按钮,我想转到 Block Flow 并编辑 Block。

我想把它做成子流。

块流:

<on-start>
    <set name="flowScope.id" value="requestParameters.id"/>
    <evaluate expression="new java.util.ArrayList()" result="flowScope.attributes"/>
    <evaluate expression="new java.util.ArrayList()" result="flowScope.visibility"/>
    <set name="flowScope.folderId" value="requestParameters.folderId"/>
    <set name="flowScope.path" value="requestParameters.path"/>
    <evaluate expression="folderBean.treeAsMap" result="flowScope.tree" />
</on-start>

如何将参数从主流发送到子流?我需要提供 3 个参数:

id、folderId 和路径如上所述。

【问题讨论】:

    标签: spring spring-webflow


    【解决方案1】:

    在您的 Block FLow 中,您可以输入:

    <input name="id"/>
    <input name="folderId"/>
    <input name="path"/>
    

    然后在您的 Route Flow 中您可以这样使用它:

    <subflow-state id="editBlock" subflow="block">
        <input name="id" value="flowScope.id"/>
        <input name="folderId" value="flowScope.folderId"/>
        <input name="path" value="flowScope.path"/>
    </subflow-state>
    

    另外,如果您使用参数 id=123&folderId=456&path=path 调用 Block Flow,那么这些参数将自动映射到在 flowScope 中设置的同名输入。因此,&lt;on-start&gt; 中的这些 set 元素将不再需要。

    另外仅供参考,您可以使用 &lt;input name="visibility" type="java.util.ArrayList"/&gt;&lt;input name="tree" value="folderBean.treeAsMap"/&gt; 并完全摆脱您的 &lt;on-start&gt;

    【讨论】:

    • flowScope 只能在特定 Flow 内部访问,我们需要 conversationFlow
    • 为什么,您之后在路由流中​​需要这些变量?我真的不明白为什么我的回答对你不起作用
    猜你喜欢
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 2011-07-25
    • 2014-07-23
    • 2011-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多