正在从操作状态恢复 spring webflow
Resuming spring webflow from action state
spring webflow 中是否有一个选项可以从操作状态或决策状态恢复流程?
我需要实现的流程需要跳出流程点击邮件中的一些link。我有处理电子邮件 link 的控制器,我正在尝试恢复以前的流程,但不是从最后的视图状态开始。
我有这样的东西
<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>
当动作状态决定发送邮件时,用户显示邮件发送页面。现在他将单击电子邮件中的 link,他应该回到将决定他现在可以转到 "show-change" 页面的操作状态。
我可以通过获取 flowRequestContext.getFlowExecutionUrl()
然后在处理电子邮件点击的控制器中使用它来恢复流程,但是这个 url 总是重定向到视图状态(取决于我何时保存它的值指向起始视图状态或电子邮件已发送视图状态。如何从操作状态恢复流程?或者其他想法如何处理这种情况?
您可以在电子邮件的 link 中添加一个参数,即 http://yoursite.com/yourflow?resume=true
然后,在您的流程中添加一个非必需的输入:
<input name="resume" required="false" type="boolean"/>
加一个decision-state来处理:
<decision-state id="resumeOrNotResume">
<if test="resume == null || !resume" then="start" else="showChange"/>
</decision-state>
并将其设置为开始状态:
<flow start-state="resumeOrNotResume">
spring webflow 中是否有一个选项可以从操作状态或决策状态恢复流程? 我需要实现的流程需要跳出流程点击邮件中的一些link。我有处理电子邮件 link 的控制器,我正在尝试恢复以前的流程,但不是从最后的视图状态开始。 我有这样的东西
<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>
当动作状态决定发送邮件时,用户显示邮件发送页面。现在他将单击电子邮件中的 link,他应该回到将决定他现在可以转到 "show-change" 页面的操作状态。
我可以通过获取 flowRequestContext.getFlowExecutionUrl()
然后在处理电子邮件点击的控制器中使用它来恢复流程,但是这个 url 总是重定向到视图状态(取决于我何时保存它的值指向起始视图状态或电子邮件已发送视图状态。如何从操作状态恢复流程?或者其他想法如何处理这种情况?
您可以在电子邮件的 link 中添加一个参数,即 http://yoursite.com/yourflow?resume=true
然后,在您的流程中添加一个非必需的输入:
<input name="resume" required="false" type="boolean"/>
加一个decision-state来处理:
<decision-state id="resumeOrNotResume">
<if test="resume == null || !resume" then="start" else="showChange"/>
</decision-state>
并将其设置为开始状态:
<flow start-state="resumeOrNotResume">