как установить тему PrimeFaces? - PullRequest
8 голосов
/ 08 февраля 2011

Я пытаюсь заставить мое приложение 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>

Но когда я запускаю приложение, тема не меняется.

Есть ли что-то еще, что я 'м отсутствует?

Ответы [ 4 ]

6 голосов
/ 22 июля 2015

Вы можете определить тему динамически следующим образом:

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

}
6 голосов
/ 15 февраля 2011

Используя PrimeFaces 2.1 я просто поставил

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

внутри <h:head> страницы (в моем случае шаблон). Больше ничего .. И это сработало!

2 голосов
/ 21 февраля 2011

Тема, упакованная в банку, поддерживается начиная с Primefaces 2.2 final .

"primefaces.THEME" заменяет "primefaces.SKIN" в web.xml.

2 голосов
/ 08 февраля 2011

По крайней мере в PrimeFaces 2.2 правильный параметр в web.xml равен primefaces.SKIN:

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

Редактировать из @ Комментарий Кагатая : "primefaces.THEME - это официальное имя параметра, другие устарели и будут удалены в 3.0. «

Это позволяет мне динамически указывать скин, используя сессионный компонент:

@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" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...