<h:head>和Java Facelets之间有什么区别?</h:head>

时间:2011-05-17 08:23:03

标签: jsf facelets variant

请参阅this

使用<h:head>的时间和原因,而不是<head>

我见过Primefaces不能与<head>一起使用。

2 个答案:

答案 0 :(得分:22)

<h:head>是一个JSF组件,它提供了一个钩子,以编程方式在生成的HTML <head>中包含JavaScript和CSS资源。 PrimeFaces使用它来包含Ajax工作所需的JS / CSS代码和花哨的look'n'feel。

作为测试,创建一个包含<h:head>PrimeFaces组件的网页,打开网页浏览器中的页面并通过右键单击检查生成的HTML源代码 - 查看源 。您将看到添加了几个JSF和PrimeFaces特定的JS / CSS文件。现在将<h:head>替换为<head>并再次检查生成的HTML源代码,此时您将看不到任何内容。

答案 1 :(得分:13)

  • <head>标记是HTML tag,它定义HTML页面的头部(这是您定义元数据的位置,或者包含JavaScript或CSS等资源)。
  • <h:head> JSF 标记(随JSF 2.0引入),用于处理页面的<head>部分。拥有这样的JSF标记的兴趣在于,这个头部成为JSF组件树的一部分,因此,您可以在Java代码中对其进行操作。

关于<head>与Primefaces的不兼容性,我不明白为什么会发生这种情况。在JSF 1.x中引入的Facelets能够混合HTML代码和JSF(XHTML)代码,即使您使用Primefaces,也不应该在页面中插入HTML <head>标记。 Facelets与JSF 2.x本地集成。