【问题标题】:In Spring WebFlow, how can I resume a flow?在 Spring WebFlow 中,如何恢复流?
【发布时间】:2014-02-12 18:12:55
【问题描述】:

使用 Spring Webflow 2.2.1 版本,我正在尝试在流程中间恢复流程执行。

例如,如果我有 4 个步骤; A B C D。用户可以启动流程(步骤 A),经过某些步骤(步骤 C)后,他会分心并放弃页面。当该用户返回流程时,我希望流程从用户离开的位置开始恢复执行(步骤 C)。我将如何实现这一目标?

【问题讨论】:

    标签: spring spring-webflow


    【解决方案1】:

    对于那些好奇我最终是如何做到这一点的人。我将 FlowUrlHandler 映射到我的实现并覆盖了 createFlowExecutionUrl(String flowId, String flowExecutionKey, HttpServletRequest request)method。

    <bean class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">
        <property name="flowExecutor" ref="flowExecutor" />
        <property name="flowUrlHandler">
           <bean class="path.to.my.implementation"/>
        </property>
      </bean>
    

    【讨论】:

      【解决方案2】:

      假设用户的会话没有超时,这将自动发生。 SWF 默认将流状态存储在 HTTP 会话中。您应该能够离开您的流程(通过输入不同的 URL),然后返回到它(使用后退按钮或直接输入 URL,只要您包含正确的流程执行键) .

      【讨论】:

      • 是的,我意识到这一点。如果我有正确的 url 和执行键,它可以继续上一步的流程。我想要做的是在不提供执行密钥的情况下启动流程,并让流程确定如果找到执行密钥则执行哪个步骤......我想我唯一的方法是存储执行密钥并附加它到网址。
      • 好的,我明白了。从你的问题我没明白这就是你的意思。我们按照您的描述进行:存储执行密钥,并重定向到该流程执行。
      猜你喜欢
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      • 2014-11-07
      • 2020-08-20
      • 2014-04-23
      • 2012-10-02
      • 2021-07-07
      • 1970-01-01
      相关资源
      最近更新 更多