gpt4 book ai didi

jsf-2 - JSF 2 - 如何销毁 session 范围的 bean

转载 作者:行者123 更新时间:2023-12-05 01:29:22 25 4
gpt4 key购买 nike

如何销毁 session 范围的 bean?

这样做的目的是控制 bean 的生命周期,使其仅在 Web 应用程序中的选项卡处于事件状态时才存在。 (在 webapp 中使用基于 Ajax 的 Tab Navigation)

有没有更好的方法来做到这一点? (自定义作用域 Bean?)

最佳答案

session 范围 bean 是在第一个 HttpRequest 上创建的涉及这个bean。销毁时 session无效。您也可以通过从 HttpSession 中删除它来手动销毁它。 , 或 sessionMap (通过 FacesContext )。

事实是它是不合逻辑 创建 session 范围 bean 仅在选项卡 View 期间存在。为此确切目的定义 自定义范围 bean 会更好,但先想一想:

  • 为什么需要这样的功能?因为内存?

  • 好吧,这可能非常棘手,想象一下用户只是经常在选项卡之间切换,而您正在一遍又一遍地重新创建 bean。更糟糕的是,如果你 从数据库中获取数据 constructor@PostConstruct .它不会真正有效。

    我的意见是你应该忘记它(除非你出于其他目的需要它)并选择一个 View 范围 bean 角,扁 bean 。这个 bean 在访问 View 后被初始化并一直存在,直到你不切换到另一个 View - 所以在每个选项卡切换(仍然是相同的 View )上没有数据库获取。 IMO 一次获取大量数据比例如更好。 15 次...如果你没有获取任何数据,那么肯定去 View 范围 .但这只是我的意见,正如我所说。

    如果买不起 View 范围 , 找 自定义范围 bean ,但绝对不是 session 范围 .

    进一步阅读: BalusC on JSF 2.0

    希望有帮助!

    关于jsf-2 - JSF 2 - 如何销毁 session 范围的 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10162391/

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