我输入了以下代码:
<h:outputStylesheet library="css" name="style.css" target="body" />
问题在于它给我一个错误的目标=&#34; body&#34;话说:
The attribute target is not defined in the component outputStylesheet
在html部分,如果html我有以下内容:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:pe="http://primefaces.org/ui/extensions">
我该如何解决这个问题?
由于
答案 0 :(得分:5)
查看tag documentation of <h:outputStylesheet>
。它确实没有列出target
属性。也许你会对来自<h:outputScript>
的那个感到困惑。
<h:outputStylesheet>
默认始终重新定位到HTML <head>
,原因非常简单,因为拥有<style>
或{{1}是违法的HTML <link>
中的元素。但是,<body>
默认位于与声明位置完全相同的位置。由其生成的<h:outputScript>
元素可以放置在HTML <script>
或<head>
中的任何位置。您可以通过将<body>
属性设置为target
(然后会显示在head
)或<head>
(然后显示在{{1}的末尾,让JSF自动重定位}})。
删除它。如果理论上body
有效,那么它最终只能以非法的HTML输出结束。
<body>
无关,资源库名称“css”在语义上是错误的。把它放在资源名称中。
target="body"