首页 > 解决方案 > 当我以新用户身份登录时,userBean 未更新

问题描述

我有一个会话 Scoped 用户 bean,它在应用程序启动时将用户数据加载到内存中。用户 bean 数据在整个应用程序中用于获取数据,即电子邮件等。

我注意到,如果我注销,旧的用户数据仍会从 bean 中显示,并且关闭浏览器无济于事。

我该如何解决这个问题?

标签: sessioncachingxpagesjavabeans

解决方案


我运行以下代码在注销时清除 sessionScope:

val = context.getSubmittedValue();
if (val == "logout") {
    facesContext.getExternalContext().getSession(false).invalidate();
    href=facesContext.getExternalContext().getRequest().getContextPath() + "?Logout&redirectTo=" + facesContext.getExternalContext().getRequest().getContextPath() ;
    facesContext.getExternalContext().redirect(href);
}

推荐阅读