我在GlassFish 3.2上使用NetBeans 7.3.1和PrimeFaces 3.5。
我使用PrimeFaces组件创建了一个JSF页面。该项目运行良好,但PrimeFaces用户界面看起来感觉完全缺失。我只注意到服务器日志中的以下消息:
一个或多个资源的目标是' head'但不是' head'组件已在视图中定义
这意味着什么以及如何修复PrimeFaces UI外观?
答案 0 :(得分:29)
这意味着您在XHTML模板中使用纯HTML <head>
而不是JSF <h:head>
。 JSF <h:head>
允许通过<head>
注释在生成的HTML @ResourceDependency
中自动包含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>
答案 1 :(得分: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&v=4.0" />
<script type="text/javascript" src="/PrimefacesExamples/faces/javax.faces.resource/jquery/jquery.js?ln=primefaces&v=4.0"></script>
<script type="text/javascript" src="/PrimefacesExamples/faces/javax.faces.resource/jquery/jquery-plugins.js?ln=primefaces&v=4.0"></script>
<script type="text/javascript" src="/PrimefacesExamples/faces/javax.faces.resource/primefaces.js?ln=primefaces&v=4.0"></script>
<title>TODO supply a title</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>