session - 当我以新用户身份登录时,userBean 未更新
问题描述
我有一个会话 Scoped 用户 bean,它在应用程序启动时将用户数据加载到内存中。用户 bean 数据在整个应用程序中用于获取数据,即电子邮件等。
我注意到,如果我注销,旧的用户数据仍会从 bean 中显示,并且关闭浏览器无济于事。
我该如何解决这个问题?
解决方案
我运行以下代码在注销时清除 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);
}
推荐阅读
- python - 在 PyCharm 中找不到 PyQt5
- git - 关闭终端窗口后Git合并获取源分支名称
- flutter - Dart/Flutter ffi(外部函数接口)本机回调,例如:sqlite3_exec
- azure-devops-rest-api - Azure DevOps Server 2019 以编程方式复制测试用例错误异常:'TF237124:工作项未准备好保存'。”
- java - 如何根据变量(枚举/对象)返回具体实现
- r - R列表/数据帧到JSON对象数组
- google-sheets - 分层折扣价计算 Google 表格公式
- python-3.x - 无法更新选择 Bokeh Library 的 Select 小部件的值时的绘图
- asp.net-core - AddAuthentication 在 Aspnet Core 3.1 中对 AddDefaultIdentity 造成严重破坏
- javascript - window.location.reload(true); 不能与数据库问题一起使用