spring webflow中是否可以选择从动作状态或决策状态恢复流量? 我需要实现的流程要求跳过该流程以单击电子邮件中的某些链接。我有处理电子邮件链接的控制器,并且我尝试恢复以前的流程,但不从最后一个视图状态恢复。 我有这样的东西
<view-state id="start>
<transition on="submit" to="handleStep1"/>
</view-state>
<action-state id="handleStep1"/>
<evaluate expression="a.something()"/>
<transition on="emailSent" to="show-email-sent"/>
<transition on="changeSomething" to="show-change"/>
</action-state>
<view-state id="show-email-sent" view="emailSentPage">
</view-state>
<view-state id="show-change" view="showChangePage">
</view-state>
当动作状态决定发送电子邮件时,用户将显示电子邮件已发送页面。现在,他将单击电子邮件中的链接,并且他应该返回到操作状态,该状态将决定他现在可以进入“显示更改”页面。
我可以通过获取flowRequestContext.getFlowExecutionUrl()
然后在处理电子邮件点击的控制器中使用它来恢复流,但是此url总是重定向到视图状态(取决于我何时保存其值,它指向开始视图状态或已发送电子邮件的视图状态。如何从动作状态恢复流程;或者其他想法如何处理这种情况?
答案 0 :(得分:1)
您可以在电子邮件的链接中添加一个参数,即http://yoursite.com/yourflow?resume=true
然后,在您的流程中添加一个非必需的输入:
<input name="resume" required="false" type="boolean"/>
添加一个决策状态来处理它:
<decision-state id="resumeOrNotResume">
<if test="resume == null || !resume" then="start" else="showChange"/>
</decision-state>
并将其设置为开始状态:
<flow start-state="resumeOrNotResume">