【问题标题】:JSF 2 - Where does a @ViewScoped bean live between requests?JSF 2 - @ViewScoped bean 在请求之间位于何处?
【发布时间】:2011-10-07 20:10:27
【问题描述】:

我试图更好地理解 JSF 2 中 @ViewScoped bean 的低级工作原理。服务器在哪里保存请求之间的视图范围 bean?我注意到我的视图范围 bean 需要实现Serializable,因此它们必须被序列化到某个位置。

谁能解释这一点或提供解释它的文档链接?

我问这个问题是因为我可能在我的 web 应用程序中引入了与范围相关的缺陷。了解@ViewScoped 的工作原理将帮助我排除一些潜在的原因。

【问题讨论】:

    标签: java serialization jsf-2 scope managed-bean


    【解决方案1】:

    @ViewScoped beans 存储在 UIViewRoot 的 viewMap 中:

    UIViewRoot 是 UIComponent,它代表了 UIComponent 树。该组件将标记呈现为对 Ajax 请求。它还充当组件树的根...

    事实上,您可以自己访问这个 viewMap,并在其中填充值:

    facesContext.getViewRoot().getViewMap()...
    

    有关更多信息,请参阅 JSF API 文档: http://javaserverfaces.java.net/nonav/docs/2.0/javadocs/javax/faces/component/UIViewRoot.html

    【讨论】:

    • 这就是我要找的。谢谢!
    猜你喜欢
    • 2015-01-14
    • 2021-12-29
    • 1970-01-01
    • 2015-04-15
    • 2013-09-27
    • 2011-11-16
    • 2014-02-14
    • 2012-09-29
    • 1970-01-01
    相关资源
    最近更新 更多