我有一个 JSF 2.0 应用程序(App#1),它有一个托管的 Session Scoped bean,它执行一些业务逻辑,如验证等。单击 Continue 按钮后,向用户显示另一个纯 html 表单页面并单击 Submit 按钮此页面会将表单提交给不同的应用程序(App#2)。在 App#2 完成工作后,会向用户显示来自 App#3 的页面。请注意,所有这些都发生在相同的浏览器选项卡中。
在 App#3(也是一个 JSF 2.0 应用程序)中,我想删除 App#1 的会话范围 bean。我怎么做?我尝试了以下选项,但它们似乎都不起作用。
//First approach
FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("app1Bean");
对于上面的代码行,我得到了 null
//second approach
HttpSession session = (HttpSession) FacesContext.getCurrentInstance()
.getExternalContext().getSession(true);
session.removeAttribute("app1Bean");
这里也为空。