我有主要的路线流程:
<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/