PrimeFacesのユーザガイドを細かく読んでいくと、意外とまだ知らない機能が多い…(^^;
テーマの切替は通常
のどちらかを使いますが、これに加えて
という方法があることを知りました(^^:
web.xmlでパラメータ指定
おそらくこれが最も標準的な設定方法かと思います。
http://www.primefaces.org/themes.html
以下のようなcontext-paramを指定するだけです。
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>redmond</param-value>
</context-param>
動的に変える場合はparam-valueを変数としてプログラムから変えればOKです。
で、こんな方法もあるらしいです。
PrimeFaces固有のJavaScript APIに
というのがあって、具体的には以下のように使えます。
<?xml version='1.0' encoding='UTF-8' ?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>PrimeFaces Theme Switch</title>
</h:head>
<h:body>
<h:form id="frm">
<p:panel id="pnl" header="JavaScriptでテーマチェンジ">
<p:commandButton value="redmond" onclick="PrimeFaces.changeTheme('redmond');" />
<p:commandButton value="afterdark" onclick="PrimeFaces.changeTheme('afterdark');" />
</p:panel>
</h:form>
</h:body>
</html>
実行結果
redmond、afterdarkはそれぞれバンドルテーマの名前です。
初期表示
redmondボタン押下
afterdarkボタン押下
使いどころは微妙ですが(^^;まあビューだけの定義で気軽にテーマチェンジできる、ってくらいかなぁ。
この「PrimeFaces.hogehoge()」で指定できるメソッドは他にも幾つかあるようなので、気が向いたら触ってみようー。