【问题标题】:How to invalidate seam POJO session如何使接缝 POJO 会话无效
【发布时间】:2009-02-01 20:26:21
【问题描述】:

我正在玩一个有会话范围的小缝应用程序。最后一种方法是作为邮件发送。发送邮件后如何使会话无效?现在,当用户再次调用初始 url 时,会话仍然存在,并且之前填写的所有表单数据仍然存在。

我找到了如何使用对话和 ejb 来做到这一点的示例,但没有使用 POJO 和会话。

谢谢, 罗里

【问题讨论】:

    标签: java jsf seam pojo


    【解决方案1】:

    根据ISASI's answer,您可以使用此代码使会话无效:

    Session.instance().invalidate();
    

    回答您的后续“问题”(奇怪的是,您将其添加为答案)。要在通知用户成功后关闭会话,您可以创建一个“确认”页面并根据与“成功”结果相关的规则重定向到该页面。然后创建一个页面操作来使会话无效。

    <page view-id="/process/confirm.xhtml" action="#{emailManager.completeSession}">
    

    从技术上讲,会话将在呈现页面之前关闭,因此可能会在访问会话数据方面产生时间问题,因此您可能需要修改页面参数以进行补偿。这是因为您基本上是通过使用每封电子邮件的会话来“错误地”执行此操作。使用对话会更好,因为有一个 @End 注释可以在呈现视图后结束对话 - 更容易。

    一旦您的应用程序涉及多个任务,您就需要切换到使用对话,因为任务之间的任何状态都将丢失。我想这会很快发生。这些时间和状态管理问题正是 Seam 对话旨在解决的问题。

    【讨论】:

      【解决方案2】:

      Session.instance().invalidate();

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-13
        • 1970-01-01
        • 2011-03-20
        • 2014-02-25
        • 2012-07-10
        • 2017-07-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多