我正在使用primefaces在JSF中开发基于登录的应用程序.在那里我将记录的用户信息保存在会话作用域的managedbean中,我需要在他退出时清除这些细节,那么如何清除SessionScoped ManagedBean对象中的那些细节呢?
sku*_*sel 18
您需要通过在操作方法中调用以下函数来使当前会话无效:
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
Run Code Online (Sandbox Code Playgroud)
此外,由于会话范围bean在后续请求中被删除,请务必发送重定向:
FacesContext.getCurrentInstance().getExternalContext().redirect("/login.xhtml");
Run Code Online (Sandbox Code Playgroud)
或者,只需从您的方法返回导航案例结果:
return "login.xhtml?faces-redirect=true";
Run Code Online (Sandbox Code Playgroud)
如果您不想使会话无效,并且有效地保留会话范围的bean(在我看来这是一个不好的做法),只需取消所有用户数据(希望在一个会话范围内的托管bean中收集)在logout方法中(如果logout方法驻留在另一个会话范围的bean中,您可能需要注入该bean).
| 归档时间: |
|
| 查看次数: |
28677 次 |
| 最近记录: |