10

我在 GlassFish 3.2 上使用 NetBeans 7.3.1 和 PrimeFaces 3.5。

我用 PrimeFaces 组件创建了一个 JSF 页面。该项目运行良好,但完全缺少 PrimeFaces UI 外观。我只注意到服务器日志中的以下消息:

一个或多个资源的目标是“头”但未在视图中定义“头”组件

这是什么意思?如何修复 PrimeFaces UI 的外观?

4

2 回答 2

31

这意味着您在 XHTML 模板中使用纯 HTML<head>而不是 JSF <h:head>。JSF允许通过注释<h:head>在生成的 HTML 中自动包含 CSS/JS 资源。PrimeFaces 作为一个基于 jQuery 的 JSF 组件库需要自动包含一些 jQuery/UI JS/CSS 文件,这确实需要一个.<head>@ResourceDependency<h:head>

所以,搜索一个

<head>
    <title>Some title</title>
    ...
</head>

在您的模板中并将其替换为

<h:head>
    <title>Some title</title>
    ...
</h:head>

也可以看看:

于 2013-09-22T19:52:33.587 回答
2

感谢您的有用回答,使用 H:HEAD 时添加了 JS/CSS/Jquery 脚本,以下是生成的 HTML 页面:

1-使用<head>标签

<head>
    <title>TODO supply a title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>

2-使用<h:head>标签

<head><link type="text/css" rel="stylesheet" href="/PrimefacesExamples  /face/javax.faces.resource/theme.css?ln=primefaces-aristo" />
  <link type="text/css" rel="stylesheet" href="/PrimefacesExamples/faces/javax.faces.resource/primefaces.css?ln=primefaces&amp;v=4.0" />
  <script type="text/javascript" src="/PrimefacesExamples/faces/javax.faces.resource/jquery/jquery.js?ln=primefaces&amp;v=4.0"></script>
  <script type="text/javascript" src="/PrimefacesExamples/faces/javax.faces.resource/jquery/jquery-plugins.js?ln=primefaces&amp;v=4.0"></script>
  <script type="text/javascript" src="/PrimefacesExamples/faces/javax.faces.resource/primefaces.js?ln=primefaces&amp;v=4.0"></script>
<title>TODO supply a title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
于 2014-04-04T11:47:16.680 回答