0

尝试使用 JSF2 模板功能。base.xhtml 页面如下所示

 <?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">
    <html xmlns="http://www.w3.org/1999/xhtml"  xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
    >

    <h:head>
    <h:outputStylesheet name="test.css" library="style" target="head"/>
    </h:head>

    <h:body>

    <div id="page">
    <div id="header">
    <ui:insert name="header" >
    <ui:include src="/layout/header.xhtml" />
    </ui:insert>
    </div>

    <div id="content">
    <ui:insert name="content" >
     ???
    </ui:insert>
    </div>

    <div id="footer">
    <ui:insert name="footer" >
    <ui:include src="/layout/footer.xhtml" />
    </ui:insert>
    </div>

    </div>

    </h:body>
    </html>

试图将此模板继承到我的页面(testpage.xhtml)

   <?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">
    <html xmlns="http://www.w3.org/1999/xhtml"   
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      >
    <h:body>

    <ui:composition template="/layout/base.xhtml">
    <ui:define name="content">
    Default Page content!!!!
    <h:outputText value="Foo bar" style="green"/>
    </ui:define>

    </ui:composition>

    </h:body>

    </html>

test.css 文件位于 webcontent/resources/style 文件夹下,css 文件内容如下

.green{
color:#0000FF;      
}

现在的问题是,当我尝试运行测试页时,样式表正在添加到页面中(视图源能够识别),但它没有反映在 UI 中。

上面的代码有什么问题吗?对此的任何帮助表示赞赏。

4

1 回答 1

2

您应该使用styleClass属性(相当于class纯 HTML 的属性)

代替

<h:outputText value="Foo bar" style="green"/>

<h:outputText value="Foo bar" styleClass="green"/>
于 2013-02-10T08:25:56.693 回答