我正在学习使用Spring Webflow
。我想创建一个像旧学校安装程序一样工作的人。在每个视图状态下,我都有一个next
和一个back
按钮。
我的问题是,是否可以通过编程方式确定哪个是下一个视图状态还是当前状态之前的视图状态?所以我可以将这些信息提供给我的按钮?
答案 0 :(得分:2)
是的,你可以这样做,但你必须明确预定义flow xml文件中特定视图状态内的每个转换/跳转。
例如:
(假设我们在webflow文件中定义了以下视图状态)
<view-state id="viewStateA">
<transition on="gotoB" to="viewStateB"/>
<transition on="gotoC" to="viewStateC"/>
</view-state>
<view-state id="viewStateB">
<transition on="gotoA" to="viewStateA"/>
<transition on="gotoC" to="viewStateC"/>
</view-state>
<view-state id="viewStateC">
<transition on="gotoA" to="viewStateA"/>
<transition on="gotoB" to="viewStateB"/>
</view-state>
因此,如果您当前在viewStateC中。您可以仅转换/转到viewStateA或viewStateB,因为您已将它们预定义为viewStateC内部(from)的可能转换。
...
要触发任何转换,您只需要发出一个类似于此的HTTP-GET请求,即可通过&#39; on&#39;特定过渡的价值作为&#39; _eventId&#39;像这样:
${flowExecutionUrl}?_eventId=gotoA
在这种情况下,过渡&#39; gotoA&#39;将被触发,反过来将把我们带回到viewStateA&#39;
所以要回答你的问题...只要你知道过渡&#39; on&#39; name和它是在该视图状态中预定义的,您可以通过将HTTP-GET请求转换为所需的转换,以编程方式触发/转到所需的视图状态/动作状态/决策状态。