我是JSF的新手并且正在阅读像这样的一些堆栈答案,我面对视图构建时间的概念。考虑JSF生命周期方案:如您所见,没有称为视图构建时间的阶段。也许它意味着与恢复视图阶段相同?来自JavaEE教程在此阶段,JavaServer Faces实现构建页面视图[...]
2 回答

梵蒂冈之花
TA贡献1900条经验 获得超5个赞
视图构建时间不是阶段。视图构建时间是UIViewRoot基于视图声明构建物理实例及其所有子节点的时刻,视图声明通常在XHTML或JSP文件中定义。
视图构建时间不限于特定的JSF生命周期阶段。技术上可以在任何阶段发生。默认情况下,它确实通常在还原视图阶段执行,但也可以在呈现响应阶段执行,特别是在请求是GET请求时,或者在POST请求期间进行导航时。当导航不足以完成特定任务时ViewDeclarationLanguage#buildView(),开发人员还可以通过编程方式构建视图,或者通过隐式强制JSF实现来实现FacesContext#setViewRoot()。
还原视图阶段只是将JSF状态还原到视图中。即它使用在同一视图上的上一个请求期间的值来设置组件属性。这样,JSF确切地知道在将表单呈现给最终用户时该视图的外观,并且可以对防篡改的请求进行一些保护。

米脂
TA贡献1836条经验 获得超3个赞
就我而言,简单来说,构建视图意味着创建我们声明的标记的Java表示(即树数据结构)。因此,我们只是自然地将我们的xhtml页面(它本质上是标记树)映射到相应的Java树数据结构,其中任何组件标记都映射到其组件类。
添加回答
举报
0/150
提交
取消