首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JSF/Facelets :无法使用<h:outputStylesheet>标记识别CSS文件

JSF/Facelets :无法使用<h:outputStylesheet>标记识别CSS文件
EN

Stack Overflow用户
提问于 2012-09-05 20:50:50
回答 1查看 45.3K关注 0票数 20

我正在做一个使用JSF/Facelets的项目。我想在我的View XHTML上做一些CSS更改,但在Tomcat Server中部署我的web应用程序时什么也没有发生。我试过很多花招,但还是得到了同样的结果。

不管怎样,这是我的"styles.css“:

代码语言:javascript
复制
body { width: 750px; }

#header 
{
width:              100%;
font-size:          36px;
font-weight:        bold;
line-height:        48px;
background-color:   navy;
color:              white;
}

#footer
{
width:              100%;
font-weight:        bold;
background-color:   navy;
color:              white;
}

这是包括"Header.html“和"Footer.html”的主模板"Template.html“,我使用标签将"styles.css”放在其中:

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
<h:outputStylesheet name="css/styles.css" />
    <!-- i've also tried this one, using the "library" attribute -->
    <!--
     <h:outputStylesheet library="css" name="styles.css" />
    -->
</head>
<h:body>
<h:panelGroup id="page" layout="block">

    <h:panelGroup id="header" layout="block">
        <ui:insert name="header">
            <ui:include src="Header.html" />
        </ui:insert>
    </h:panelGroup>

    <h:panelGroup id="container" layout="block">
        <h:panelGroup id="content" layout="block">
            <ui:insert name="content">CONTENT</ui:insert>
        </h:panelGroup>
    </h:panelGroup>

    <h:panelGroup id="footer" layout="block">
        <ui:insert name="footer">
            <ui:include src="Footer.html" />
        </ui:insert>
    </h:panelGroup>

</h:panelGroup>

</h:body>
</html>

最后是我的"Main.xhtml“,其中包括模板"Template.html”:

代码语言:javascript
复制
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich" template="Template.html">
<h:body>
    <ui:define name="content">
        <h:form>
            <h:inputText title="inputText"></h:inputText>
            <h:commandButton value="OK"></h:commandButton>
        </h:form>
    </ui:define>
</h:body>
 </ui:composition>

提前感谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-05 21:08:56

<h:outputStylesheet> (和<h:outputScript>)需要一个<h:head>,但是您已经有了一个<head>。相应地修复它。

代码语言:javascript
复制
<h:head>
    <h:outputStylesheet name="css/styles.css" />
</h:head>

此外,您需要确保将css/styles.css文件放置在公共been内容的/resources子文件夹中。

代码语言:javascript
复制
WebContent
 |-- resources
 |    `-- css
 |         `-- styles.css
 :

至于您尝试使用library属性,请注意这一点,在这种情况下使用library="css"并不完全正确。另请参阅:What is the JSF resource library for and how should it be used?

票数 56
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12281839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档