web-dev-qa-db-ja.com

PrimeFacesテーマを設定する方法は?

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>

しかし、アプリを実行してもテーマは変わりません。

他に足りないものはありますか?

9
user550738

PrimeFaces2.1を使用して

<link type="text/css" rel="stylesheet" href="#{request.contextPath}/themes/cupertino/skin.css"/>

内部<h:head>ページの(私の場合はテンプレート)。他には何も..そしてそれはうまくいきました!

7
Renan

テーマは次のように動的に定義できます。

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";
    }

}
7
Lucas Do Amaral

少なくとも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" />
3
Matt Ball

Primefaces 2.2 final以降、jarにパッケージ化されたテーマがサポートされています。

「primefaces.THEME」は、web.xmlの「primefaces.SKIN」を置き換えます。

3
Zofren