我试图更好地理解@ViewScoped
JSF 2 中 bean 的低级工作。服务器将视图范围的 bean 在请求之间保存在哪里?我注意到我的视图范围 bean 需要实现Serializable
,因此它们必须序列化到某个位置。
任何人都可以解释这一点或提供解释它的文档链接吗?
我问这个问题是因为我可能在我的 webapp 中引入了与范围相关的缺陷。了解如何@ViewScoped
工作将帮助我排除一些潜在的原因。
我试图更好地理解@ViewScoped
JSF 2 中 bean 的低级工作。服务器将视图范围的 bean 在请求之间保存在哪里?我注意到我的视图范围 bean 需要实现Serializable
,因此它们必须序列化到某个位置。
任何人都可以解释这一点或提供解释它的文档链接吗?
我问这个问题是因为我可能在我的 webapp 中引入了与范围相关的缺陷。了解如何@ViewScoped
工作将帮助我排除一些潜在的原因。
@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