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

Posted

技术标签:

【中文标题】一个或多个资源的目标是“头”但未在视图中定义“头”组件【英文标题】:One or more resources has the target of 'head' but not 'head' component has been defined within the view 【发布时间】:2013-09-27 06:01:32 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

所以,搜索一个

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

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

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

另见:

What's the difference between <h:head> and <head> in Java Facelets? Unable to understand <h:head> behaviour How to programmatically add JS and CSS resources to <h:head>? How to include another XHTML in XHTML using JSF 2.0 Facelets?

【讨论】:

好的,现在错误信息消失了,但是 PrimeFaces 和 Crud 仍然分开运行! 如果您需要答案,只需按“”按钮即可询问相关问题。当前问题已得到解答。【参考方案2】:

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

1- 使用&lt;head&gt;标签

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

2- 使用&lt;h:head&gt;标签

<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>

【讨论】:

以上是关于一个或多个资源的目标是“头”但未在视图中定义“头”组件的主要内容,如果未能解决你的问题,请参考以下文章

gcc 警告:已使用但未定义的函数

vs2012,如图,下列控件已经添加到工具箱,但未在活动设计器中启用,请问如何解决?

选择器视图在选择器视图中显示数字但未在标签上正确显示?

c语言 头文件中放函数实体 两个c文件同时引用会报错:找到一个或多个重定义的符号

MVC 部分视图已更新,但未在主视图中显示

自定义请求头引起预检请求