<h:body>
是否有任何特殊目的?制作JSF应用程序时<body>
是不够的?
答案 0 :(得分:3)
此标记呈现HTML正文元素。它还为JSF资源重定位提供了目标。这使得JSF开发人员能够通过告诉JSF框架在请求时在何处呈现这些资源,以更灵活的方式实现依赖于资源(如图像,脚本和级联样式表)的组件。通常的目标是“头部”或“身体”标签。在实现JSF2组合组件时,可重定位资源特别有用。
渲染起始元素标记。在渲染结束元素标记之前,渲染已为此“body”元素定位的所有资源:
- 获取UIViewRoot实例。
- 通过调用UIViewRoot.getComponentResources()并使用字符串“body”作为参数,获取此“body”元素的目标组件资源列表。渲染结束元素标记。
- 迭代返回的UIComponent实例列表,并在每个UIComponent实例上调用encodeAll。
所以,我想关键是提供JSF框架使用的资源。
第一句话说通常的目标是“头部”或“身体”标签。例如,如果您在<h:body>
标记中有<h:outputScript name="hello.js"/>
,则会在<body>
标记中呈现该脚本,但如果您在<head>
中指定,则可以将其更改为target
{1}}属性。这是资源重定位,可以在更详细的here中找到解释。