1

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

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

谢谢,罗里

4

2 回答 2

3

根据ISASI 的回答,您可以使用此代码使会话无效:

Session.instance().invalidate();

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

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

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

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

于 2009-02-23T16:30:49.697 回答
1

Session.instance().invalidate();

于 2009-02-01T21:26:04.977 回答