单个JSF应用程序中的多个Primefaces主题

时间:2013-10-22 08:22:58

标签: jsf primefaces themes

我们需要在单个Web应用程序中使用多个primefaces JSF主题,我们在应用程序中有几个模块,每个模块都有自己的几个屏幕,我们希望每个模块都有不同的primefaces主题,

任何人都可以告诉我们如何实现这一目标。

在web.xml中我们指定了:

<context-param>
    <param-name>primefaces.THEME</param-name>
    <param-value>start</param-value>
  </context-param>

感谢

2 个答案:

答案 0 :(得分:4)

每页你都可以得到它。在web.xml中,您可以写:

<context-param>
   <param-name>primefaces.THEME</param-name>
   <param-value>#{sessionBean.userTheme}</param-value>
</context-param>

并在每次页面更改时在user bean中设置userTheme。

否则,您可以扩展primefaces组件。 然后为每个组件指定特定主题。

答案 1 :(得分:0)

在Web.xml文件中设置primefaces主题将影响整个应用程序,但有一个解决方法,如下所示:

  1. 将所需的primefaces主题下载为jar文件(例如:晴天)
  2. 在网络资源文件夹中,创建一个子文件夹“primefaces-sunny”
  3. 提取主题jar并将“theme.css”和“images”文件夹复制到创建的子文件夹“primefaces-sunny”
  4. 现在为每个模块创建一个模板(facelet模板)
  5. 每个模板中的
  6. 包括目标样式表&lt; h:outputStylesheet library =“primefaces-sunny”name =“theme.css”/&gt;
  7. 让模块中的每个页面使用模块模板页面
  8. 就是这样:))