为什么我们在JSF </h:body>中需要<h:body>

时间:2015-01-13 10:48:53

标签: html jsf-2

<h:body>是否有任何特殊目的?制作JSF应用程序时<body>是不够的?

1 个答案:

答案 0 :(得分:3)

来自the documentation

  

此标记呈现HTML正文元素。它还为JSF资源重定位提供了目标。这使得JSF开发人员能够通过告诉JSF框架在请求时在何处呈现这些资源,以更灵活的方式实现依赖于资源(如图像,脚本和级联样式表)的组件。通常的目标是“头部”或“身体”标签。在实现JSF2组合组件时,可重定位资源特别有用。

this

  

渲染起始元素标记。在渲染结束元素标记之前,渲染已为此“body”元素定位的所有资源:

     
      
  • 获取UIViewRoot实例。
  •   
  • 通过调用UIViewRoot.getComponentResources()并使用字符串“body”作为参数,获取此“body”元素的目标组件资源列表。渲染结束元素标记。
  •   
  • 迭代返回的UIComponent实例列表,并在每个UIComponent实例上调用encodeAll。
  •   

所以,我想关键是提供JSF框架使用的资源。

第一句话说通常的目标是“头部”或“身体”标签。例如,如果您在<h:body>标记中有<h:outputScript name="hello.js"/>,则会在<body>标记中呈现该脚本,但如果您在<head>中指定,则可以将其更改为target {1}}属性。这是资源重定位,可以在更详细的here中找到解释。