我有主要的路线流程:

<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 和 path 如上所述。

最佳答案

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

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

然后在你的路由流中你可以这样使用它:
<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 调用块流,那么这些参数将自动映射到在 flowScope 中设置的具有相同名称的输入。因此,您将不再需要 set 中的这些 <on-start> 元素。

也仅供引用,您可以使用 <input name="visibility" type="java.util.ArrayList"/><input name="tree" value="folderBean.treeAsMap"/> 并完全摆脱您的 <on-start>

关于spring - 如何在 Spring WebFlow 中发送参数 SubFlow,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13952143/

10-12 00:26
查看更多