Spring Webflow,从任何子流返回主流

fso*_*zay 5 spring-webflow

我正试图在弹簧中返回我的主要流程,只需单击一个按钮即可从我的任何子流程返回.

当我使用<end-state>它时,只需转到上一个流程,这也是应用程序中的子流程.

有任何想法吗?

Dav*_*vid 13

您只需要在调用流程中的每个子流状态中进行适当的转换即可执行您想要的操作.子流中的结束状态ID将用作您可以在调用流中转换的事件ID.

子流可以被认为是执行的一个分支.因此,当您的子流程完成后,控制权将返回到调用流程.将您的最终状态视为return语句(并将id属性作为返回的值 - 您也可以设置输出属性,但这里并不重要).

当子流终止时,控制权将返回到调用流.调用流应该定义一个确定如何处理此事件的转换.您将看到的事件ID是子流中的最终状态的ID.

因此,如果您具有以下最终状态,则在您的子流中:

<end-state id="back"/>
Run Code Online (Sandbox Code Playgroud)

然后,您可以在调用子流的流中处理此转换:

<subflow-state id="do-some-sub" flow="some-sub">
    < ... input variables, expressions, etc ... />
    <transition on="back" to="some-state"/>
</subflow-state>
Run Code Online (Sandbox Code Playgroud)

请注意,此处的某些状态也可以是最终状态.您的情况听起来像是有一个主流调用子流,而子流又调用另一个子流.所以你会希望某个状态成为一个结束状态,然后由它的调用流程处理(在你的情况下是"主"流程).