什么是视图构建时间?

ste*_*lla 19 lifecycle jsf jsf-2

我是JSF的新手并且正在阅读像这样的一些堆栈答案,我面对视图构建时间的概念.考虑JSF生命周期方案:

在此输入图像描述

如您所见,没有称为视图构建时间的阶段.也许它意味着与恢复视图阶段相同?来自JavaEE教程

在此阶段,JavaServer Faces实现构建页面视图[...]

Bal*_*usC 26

视图构建时间不是阶段.视图构建时间是UIViewRoot基于视图声明构建物理实例及其所有子节点的时刻,视图声明通常在XHTML或JSP文件中定义.

视图构建时间不限于特定的JSF生命周期阶段.技术上可以在任何阶段发生.默认情况下,它确实通常在还原视图阶段执行,但也可以在呈现响应阶段执行,特别是在请求是GET请求时,或者在POST请求期间进行导航时.当导航不足以完成特定任务时ViewDeclarationLanguage#buildView(),开发人员还可以通过编程方式构建视图,或者通过隐式强制JSF实现来实现FacesContext#setViewRoot().

还原视图阶段只是将JSF状态还原到视图中.即它使用在同一视图上的上一个请求期间的值来设置组件属性.这样,JSF确切地知道在将表单呈现给最终用户时该视图的外观,并且可以对防篡改的请求进行一些保护.

也可以看看:

  • 就我而言,简单来说,构建视图意味着创建我们声明的标记的Java表示(即树数据结构).因此,我们只是自然地将我们的xhtml页面(它本质上是标记树)映射到相应的Java树数据结构,其中任何组件标记都映射到其组件类. (6认同)