SSブログ

primefaces デフォルト・スタイルシートをカスタマイズ [JSF]

primefacesのデフォルト・スタイルシートを無効にして、カスタマイズする。

何も設定しないと、こんな感じでスタイルシートがロードされる。
<link type="text/css" rel="stylesheet" href="/(ルート)/faces/javax.faces.resource/theme.css?ln=primefaces-aristo" />


これをまず無効にするにはweb.xmlに以下の内容を追記する。

<context-param>
  <param-name>primefaces.THEME</param-name>
  <param-value>none</param-value>
</context-param>


あとはprimefacesのjarファイルを解凍して、resources下に必要なものをコピー。
cssを好きなようにカスタマイズする。

xhtmlファイル
<link type="text/css" rel="stylesheet" href="resources/primefaces-aristo/theme.css" />

jarファイルのありかはこちら

JSFテンプレート機能を使う(1) [JSF]

テンプレート内で別のxhtmlをincludeしたら警告が発生した。

1つまたは複数のリソースに 'head' のターゲットがありますが、'head' コンポーネントがビューで定義されていません。


テンプレート・クライアント
<body>
  <ui:composition template="/layout/template02.xhtml">
  <ui:define name="left">
    サイド・メニュー
  </ui:define>
  <ui:define name="top">
    <ui:include src="/comment/top.xhtml" />
  </ui:define>


top.xhtml
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html">
  <head>
    <title>コメント メニュー</title>
  </head>
  <body>



<head>定義で何かが足りないらしい。
調べたところ、headがJSFとして明示的に定義されていないが問題らしい。

そこでtop.xhtmlのheadを以下のように修正。
<head jsfc="h:head">

これで警告メッセージは出なくなった。


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。