【发布时间】:2015-10-31 15:33:36
【问题描述】:
我对 JSF 很陌生,并且阅读了一些堆栈答案,例如 this one,我遇到了查看构建时间的概念。考虑 JSF 生命周期方案:
如您所见,没有称为查看构建时间的阶段。也许这与 Restore view 阶段的含义相同?来自JavaEE tutorial
在此阶段,JavaServer Faces 实现构建视图 页面 [...]
【问题讨论】:
我对 JSF 很陌生,并且阅读了一些堆栈答案,例如 this one,我遇到了查看构建时间的概念。考虑 JSF 生命周期方案:
如您所见,没有称为查看构建时间的阶段。也许这与 Restore view 阶段的含义相同?来自JavaEE tutorial
在此阶段,JavaServer Faces 实现构建视图 页面 [...]
【问题讨论】:
视图构建时间不是一个阶段。视图构建时间是物理 UIViewRoot 实例及其所有子实例基于视图声明构建的时刻,该声明通常在 XHTML 或 JSP 文件中定义。
视图构建时刻不限于特定的 JSF 生命周期阶段。从技术上讲,它可以在任何阶段发生。默认情况下,它确实通常在恢复视图阶段执行,但它也可能发生在呈现响应阶段,特别是当请求是 GET 请求时,或者在 POST 请求期间发生导航时。开发人员还可以通过 ViewDeclarationLanguage#buildView() 以编程方式构建视图,或者在导航不足以完成特定任务时通过 FacesContext#setViewRoot() 隐式强制 JSF 实现执行此操作。
恢复视图阶段只是将 JSF 状态恢复到视图中。 IE。它使用值设置组件属性,就像它们在同一视图上的上一个请求期间一样。通过这种方式,JSF 可以准确地知道在将表单呈现给最终用户时视图的样子,并且可以针对被篡改的请求采取一些保护措施。
【讨论】: