gpt4 book ai didi

jsf-2 - 何时使用 f :view and f:subview

转载 作者:行者123 更新时间:2023-12-02 23:42:06 26 4
gpt4 key购买 nike

我不确定使用<f:view>有什么好处和<f:subview> 。我注意到人们可以在不使用 JSF 页面的情况下编写它们。

使用这些标签有什么好处?

最佳答案

<f:view> 仅当您想显式指定/覆盖任何可用属性(例如 locale)时才有用。 , encoding , contentType等或者想要附加一些阶段监听器。例如

<f:view locale="#{user.locale}" encoding="UTF-8" contentType="text/html">

如果您不指定它,那么将仅使用合理的 JSF 默认值,分别是 UIViewRoot#getLocale() , UTF-8Accept 最接近的匹配请求 header 。应该注意的是 Accept 最接近的匹配请求 header 并不总是完全正确。有时它会导致 application/xhtml+xml因为 .xhtml 的存在URL 中的扩展名,以防 Facelets 和 Web 浏览器未配置为将其解释为 text/html默认情况下(如 MSIE)。您确实希望通过显式将其设置为 text/html 来避免这种错误的内容类型。 .

请注意,将其放在模板中的位置并不重要。您甚至可以将其作为 <ui:define> 的直接子级放入模板客户端中。 。然而,规范位置是 <html> 的直接子级。从而包装 <h:head><h:body> 。这也是在遗留 JSP 中实际需要的实现方式。在 Facelets 中,它是可选的并被视为元数据。

另请参阅:

<小时/>

<f:subview> 将创建另一个命名容器上下文。当您想要重用包含文件(该文件又在同一 View 根目录中多次包含固定组件 ID)时,这特别有用,否则您将收到重复的组件 ID 错误。然而,从 JSF 2.0 开始,这样的包含文件可以更好地成为一个复合组件,它本身就已经是一个命名容器。

如果您不指定它,那么如果您不在 View 中多次重复使用具有相同 ID 的组件,也不会造成损害。

另请参阅:

关于jsf-2 - 何时使用 f :view and f:subview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8883476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com