java - JSF 2 - @ViewScoped bean 在请求之间存在于何处?

标签 java serialization jsf-2 scope managed-bean

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

任何人都可以对此进行解释或提供指向解释它的文档的链接吗?

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

最佳答案

@ViewScoped beans 存储在UIViewRoot 的viewMap 中:

UIViewRoot is the UIComponent that represents the root of the UIComponent tree. This component renders markup as the response to Ajax requests. It also serves as the root of the component tree...

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

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

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

关于java - JSF 2 - @ViewScoped bean 在请求之间存在于何处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6736043/

相关文章:

java - CardLayout 带有更改卡片的按钮

java - 如何使用 JSP 2 避免 JSP 文件中的 Java 代码?

扩展或者是父类的 Java 泛型类型

javascript - 如何使用 javascript 将请求发送到托管 Bean?

java - ThreadPoolExecutor 如何中断空闲线程?

java - 如何解决 hibernate 双向映射导致的json序列化器中的循环引用?

jQuery:表单序列化、隐藏字段和不显示字段

c# - 为可序列化模型对象编写事件处理程序的正确方法是什么?

java - 虽然呈现 ="false",但内容为 h :dataTable is always evaluated

jsf - Primefaces fileUploadListener 不起作用