9

JSFベースのページ用に次のマスターテンプレートファイルがあります。

<!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: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">
<h:head>
   <title><ui:insert name="title">MyApp</ui:insert></title>
   <h:outputStylesheet name="stylesheet.css" library="styles"/>
</h:head>

<h:body>

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

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

      <div id="footer">
         <ui:insert name="footer">
         </ui:insert>
      </div>
   </div>
</h:body>

</html>

ヘッドセクションには、がありstylesheet.cssます。このスタイルシートには、すべてのページに共通するすべてのグローバルスタイルが含まれています。

テンプレートクライアントで、ページ固有のスタイルシートを追加したいと思います。そこで、テンプレートクライアントページに次の行を追加してみました。

<ui:composition template="/pages/templates/template.xhtml">
   <ui:define name="content">
      <h:outputStylesheet name="indexPage.css" library="styles" target="head"/>

      // body content

</ui:composition>

indexPage.cssただし、これは生成されたHTMLのheadセクションに追加されていないようです。

私はMojarra2.1.2を使用しています。target属性をサポートしていますか?Eclipseのオートサジェストオプションで利用可能なものの1つとしてリストされていません。

そうでない場合は、テンプレートを使用しながら、追加のページ固有のCSSを挿入するにはどうすればよいですか?

4

2 に答える 2

10

セクション内のマスター テンプレート ファイルに、特にcssファイル リンクhead用の新しいテンプレート コンテンツを追加します。

<h:head>
   <title><ui:insert name="title">MyApp</ui:insert></title>
   <h:outputStylesheet name="stylesheet.css" library="styles"/>
   <ui:insert name="css"/>
</h:head>

テンプレート クライアント ページで、次のようなページ固有のスタイルシートを追加します。

<ui:composition template="/pages/templates/template.xhtml">
   <ui:define name="css">
      <h:outputStylesheet name="indexPage.css" library="styles"/>
   </ui:define>
   ...
</ui:composition>

代わりにh:outputStylesheet使用でき<link rel="stylesheet" type="text/css" href="relative path to css file">ます。マスター テンプレートui:insertcssは 内にある必要があることが重要ですh:head

于 2014-10-06T10:14:07.890 に答える