0
votes

I am trying to get the downloaded Dark-Hive Themeroller theme for a PrimeFaces project going but can't figure out why it won't show...Looking into the html source code I always see Aristo theme, which I believe is the default PrimeFaces theme. I followed multiple forum suggestions but have to post this one into the community - maybe someone can give me a hint.

Project structure:

  • /webapp/WEB-INF/lib/dark-hive.jar -> downloaded from themeroller.org and converted with themeroller.osnode.com/themeroller into a PF theme
  • /webapp/WEB-INF/templates/layout.xhtml -> my master template, which contains xmlns:h="http://java.sun.com/jsf/html" namespace attribute as well as tag
  • /webapp/WEB-INF/resources
  • /webapp/WEB-INF/web.xml
  • /webapp/WEB-INF/faces-config.xml
  • ...

I don't output any CSS simply because according to the docs it's not needed for PF themes to work.

Parts of 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>

Please note that I moved the resources folder into WEB-INF/.

Parts of pom.xml:

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

Because of Maven dependency and manual download/drop into /WEB-INF/lib folder I now have 2 dark-hive.jar in my war file:

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

Both have the same internal structure.

I am using WildFly 8.1.0.Final with upgraded JSF Mojarra 2.2.8, PrimeFaces 5.1, OmniFaces 1.8.1

Any ideas?

1

1 Answers

0
votes

The answer lies within the use of OmniFaces showcase HeadRenderer.

In my faces-config.xml I was using:

<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>

which used the primefaces-aristo theme. Solution was to write my own HeadRenderer according to:

Custom HeadRenderer