PrimeFaces(v2.1)アプリで別のテーマを使用できるようにしようとしています。
Vader-1.0.0.jarをダウンロードして、WEB-INF/libフォルダーに配置しました。
Web.xmlに以下を追加しました。
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>vader</param-value>
</context-param>
しかし、アプリを実行してもテーマは変わりません。
他に足りないものはありますか?
PrimeFaces2.1を使用して
<link type="text/css" rel="stylesheet" href="#{request.contextPath}/themes/cupertino/skin.css"/>
内部<h:head>
ページの(私の場合はテンプレート)。他には何も..そしてそれはうまくいきました!
テーマは次のように動的に定義できます。
web.xml:
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>#{themeBeam.applicationTheme}</param-value>
</context-param>
豆:
@ApplicationScoped
@ManagedBean
public class ThemeBean {
public String getApplicationTheme() {
return "dark-Hive";
}
}
少なくともPrimeFaces2.2では、web.xml
の正しいパラメーターはprimefaces.SKIN
です。
<context-param>
<param-name>primefaces.SKIN</param-name>
<param-value>none</param-value>
</context-param>
Editfrom @ Cagatay's コメント: 「primefaces.THEMEは公式のパラメータ名です。その他は非推奨であり、3.0で削除されます。」
これにより、セッションスコープのBeanを使用してスキンを動的に指定できます。
@Named @SessionScoped
public class LayoutBean
{
...
private String theme = "aristo";
...
public String getTheme()
{
return theme;
}
...
}
次に、マークアップで:
<link rel="stylesheet" href="#{request.contextPath}/themes/#{layoutBean.theme}/skin.css" />
Primefaces 2.2 final以降、jarにパッケージ化されたテーマがサポートされています。
「primefaces.THEME」は、web.xmlの「primefaces.SKIN」を置き換えます。