Как установить тему по коду Java в Primefaces 3? - PullRequest
2 голосов
/ 09 декабря 2011

У меня есть, например, тема test.Как установить эту тему, используя код Java в Primefaces?Я не хочу использовать контекстный параметр primefaces.THEME и не хочу использовать <p:themeSwitcher>.

Ответы [ 2 ]

6 голосов
/ 07 июня 2014

Еще один способ сделать это: включить таблицу стилей в шаблон страницы:

<h:body> <h:outputStylesheet library="primefaces-#{themesBean.theme}" name="theme.css" /> </h:body>

Где переменная # {themesBean.theme} ссылается на название вашей темы.

P.S. протестировано в PF5

Тот же ответ на аналогичный вопрос https://stackoverflow.com/a/24092773/2993327

1 голос
/ 09 декабря 2011

Это то, что вам нужно сделать (не проверено, но должно дать вам представление о том, как это должно работать)

  • Отключить поддержку стандартной темы (в web.xml):

Код:

<context-param>
  <param-name>primefaces.THEME</param-name>
  <param-value>none</param-value>
</context-param>
  • Создание управляемого компонента (CDI или std JSF), который содержит значение для темы.

Код:

@Named @SessionScoped
public class LayoutBean
{
    ...
    private String theme = "test";
    ...
    public String getTheme()
    {
        return theme;
    }
    ...
}
  • Добавить следующий тег в заголовок всех ваших страниц (шаблон)

Код:

 <link rel="stylesheet" href="#{request.contextPath}/themes/{layoutBean.theme}/skin.css" />

Вы можете найти это решение по следующему URL-адресу как установить тему PrimeFaces?

...