JSF2のリソースアクセス機能

まあ、いまさらですがJSF2ではリソース定義及びそれに対するアクセスの標準的な仕組みが存在します。ここで言うリソースはJavascriptCSS等です。

例えばsample-webという名前がコンテキストルートの場合その直下にresourcesというフォルダを作成し、javascriptならば「javascriptCSSならば「css」というフォルダを作成し、ファイルを以下のように作成します。


sample-web
+resources
+css
style.css
+javascript
sample.js

あとはJSFのViewで次のように記述すれば勝手に読み込んでくれます。

...
<h:head>
    <h:outputStylesheet library="css" name="style.css" />
    <h:outputScript library="javascript" name="sample.js" />
</h:head>
...

outputStylesheetでCSSファイルを、outputScriptでJavascriptを読み込んでいます。両方のタグにlibraryという属性があると思いますが、これがresource配下のフォルダ名と一致している必要があるようです。

outputStylesheetならばresourcesフォルダ以下のcssフォルダ(library="css")直下のcssファイル(name="style.css")を読み込むという処理になるようです。

Javascriptも同様。

cssフォルダ配下にmystyleというフォルダが存在しその配下のcssファイルを読み込む場合はlibrary="css/mystyle"とすれば読み込むことが可能です。