【问题标题】:Access FlowScope on HTTP Session Timeout在 HTTP 会话超时时访问 FlowScope
【发布时间】:2015-07-31 05:06:34
【问题描述】:

我的公司有一个使用 Spring WebFlow 2.4.0 开发的应用程序。流是一个应用进程,应用对象在FlowScope中。

当 HTTP 会话超时时,我想访问该应用程序对象,对其进行一些修改,并将其保存到我们的数据库中。我的问题是我似乎找不到一个可以让我在 HTTP 会话超时时访问 FlowScope 的钩子。

我们定义了一个 HttpSessionListener,它可以让我访问会话。由于 webflow 将其数据保存在会话中,似乎有一种方法可以从 HttpSession 对象访问 FlowScope?是这样吗,如果是这样:

  1. 怎么样?
  2. 可以这样做吗?经孩子测试的母亲批准了吗?

注意:我确实尝试过使用 FlowExecutionListener 的 sessionEnding 挂钩,希望在 HttpSession 销毁时,webflow 会优雅地关闭并结束流会话,但事实并非如此。

任何提示或指导将不胜感激!如果这是一个愚蠢的问题,请提前道歉。我绝不是 webflow 专家。 :)

【问题讨论】:

    标签: spring-webflow-2


    【解决方案1】:

    您是否尝试在 HttpSessionListener 逻辑中使用/调用 RequestContextHolder.getRequestContext()?

    How can I access Spring Webflow FlowScope elements outside the flow?

    【讨论】:

    • 感谢您的回复!我最初没有尝试这个,但在你的建议下,试了一下。不幸的是,RequestContextHolder.getRequestContext() 似乎期望当前线程已作为请求的一部分启动,而 HttpSessionListener 中并非如此。 :( 当我尝试使用此方法时,我的 RequestContext 会返回为 null。
    • @KFox112 也许你应该明确地触发一个 ApplicationEvent 并监听它?请参阅此解决方案stackoverflow.com/questions/19794115/…
    猜你喜欢
    • 1970-01-01
    • 2011-04-24
    • 2013-01-12
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多