gpt4 book ai didi

jsf-2 - 如何清除 session 范围托管 bean 的对象?

转载 作者:行者123 更新时间:2023-12-02 02:53:20 26 4
gpt4 key购买 nike

我正在使用 primefaces 在 JSF 中开发基于登录的应用程序。因为我将记录的用户信息保留在 session 范围的托管bean中,并且我需要在他注销时清除该详细信息,那么如何清除SessionScoped ManagedBean对象中的这些详细信息?

最佳答案

您需要通过在操作方法中调用以下函数来使当前 session 无效:

FacesContext.getCurrentInstance().getExternalContext().invalidateSession();

此外,由于 session 范围的 Bean 在后续请求中被丢弃,因此请务必发送重定向:

FacesContext.getCurrentInstance().getExternalContext().redirect("/login.xhtml");

或者,只需从您的方法返回导航案例结果:

return "login.xhtml?faces-redirect=true";

如果您不想使 session 无效并有效地保留 session 范围的bean(在我看来这是一种不好的做法),只需使所有用户数据无效(希望这些数据是在一个 session 范围内收集的)托管 bean)在注销方法中(如果注销方法驻留在另一个 session 范围的 bean 中,您可能需要注入(inject)该 bean)。

关于jsf-2 - 如何清除 session 范围托管 bean 的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14999667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com