如何使seam POJO会话无效

时间:2009-02-01 20:26:22

标签: java jsf seam pojo

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

我已经找到了如何使用对话和ejb执行此操作的示例,但没有找到POJO和会话。

谢谢, 罗里

2 个答案:

答案 0 :(得分:3)

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

Session.instance().invalidate();

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

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

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

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

答案 1 :(得分:1)

Session.instance()无效();