【问题标题】:What's the view build time?视图构建时间是多少?
【发布时间】:2015-10-31 15:33:36
【问题描述】:

我对 JSF 很陌生,并且阅读了一些堆栈答案,例如 this one,我遇到了查看构建时间的概念。考虑 JSF 生命周期方案:

如您所见,没有称为查看构建时间的阶段。也许这与 Restore view 阶段的含义相同?来自JavaEE tutorial

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

【问题讨论】:

    标签: jsf jsf-2 lifecycle


    【解决方案1】:

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

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

    恢复视图阶段只是将 JSF 状态恢复到视图中。 IE。它使用值设置组件属性,就像它们在同一视图上的上一个请求期间一样。通过这种方式,JSF 可以准确地知道在将表单呈现给最终用户时视图的样子,并且可以针对被篡改的请求采取一些保护措施。

    另见:

    【讨论】:

    • 据我所知,简单来说,构建视图意味着创建我们声明的标记的 Java 表示(即树数据结构)。因此,我们只是自然地将我们的 xhtml 页面(本质上是标签树)映射到相应的 Java 树数据结构,其中任何组件标签都被映射到其组件类。
    猜你喜欢
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 2020-04-01
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多