通过primefaces.THEME在Primefaces 5.1中应用主题不起作用

时间:2014-10-31 18:36:13

标签: jsf primefaces themeroller

我正在尝试为PrimeFaces项目获取下载的Dark-Hive Themeroller主题,但无法弄清楚为什么它不会显示...查看html源代码我总是看到Aristo主题,我认为这是默认的PrimeFaces主题。我遵循了多个论坛建议,但必须将这一个发布到社区中 - 也许有人可以给我一个提示。

项目结构:

  • /webapp/WEB-INF/lib/dark-hive.jar - >从themeroller.org下载 并使用themeroller.osnode.com/themeroller转换为PF 主题
  • /webapp/WEB-INF/templates/layout.xhtml - >我的主模板,包含xmlns:h =" http://java.sun.com/jsf/html"名称空间属性以及标记
  • / web应用/ WEB-INF /资源
  • /webapp/WEB-INF/web.xml
  • /webapp/WEB-INF/faces-config.xml
  • ...

我没有输出任何CSS只是因为根据文档,PF主题不需要工作。

web.xml的一部分:

<context-param>
    <param-name>javax.faces.WEBAPP_RESOURCES_DIRECTORY</param-name>
    <param-value>/WEB-INF/resources</param-value>
</context-param>
<context-param>
    <param-name>primefaces.THEME</param-name>
    <param-value>dark-hive</param-value>
</context-param>

请注意,我将资源文件夹移动到WEB-INF /.

pom.xml的一部分:

<dependency>
    <groupId>org.primefaces.themes</groupId>
    <artifactId>dark-hive</artifactId>
    <version>1.0.8</version>
</dependency>

由于Maven依赖和手动下载/放入/ WEB-INF / lib文件夹,我现在在我的war文件中有2个dark-hive.jar:

  • /WEB-INF/lib/dark-hive-1.0.8.jar
  • /WEB-INF/lib/dark-hive.jar

两者都具有相同的内部结构。

我正在使用WildFly 8.1.0.Final升级的JSF Mojarra 2.2.8,PrimeFaces 5.1,OmniFaces 1.8.1

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

答案在于使用OmniFaces展示HeadRenderer。

在我使用的faces-config.xml中:

<render-kit>
    <renderer>
        <component-family>javax.faces.Output</component-family>
        <renderer-type>javax.faces.Head</renderer-type>
        <renderer-class>org.omnifaces.showcase.HeadRenderer</renderer-class>
    </renderer>
</render-kit>

使用了primefaces-aristo主题。 解决方法是根据以下内容编写自己的HeadRenderer:

Custom HeadRenderer