我只想为一个 jsf 页面应用 primefaces Trontastic 主题。 我已阅读关于 Applying PrimeFaces theme only for one JSF page 的答案 我对我的代码进行了相同的更改。
我已经下载了 trontastic-1.0.10.jar 并将其保存在 WEB-INF\lib 文件夹中。 提取 jar 并在“资源”文件夹中我创建了一个名为“primefaces-trontastic”的子文件夹。在此文件夹中,我从主题和“图像”文件夹中复制了文件 theme.css。在我的 xhtml 中,我在
中添加了以下代码<h:outputStylesheet library="primefaces-trontastic" name="theme.css" />
但是我发现我的jsf页面没有变化。 我还需要做些什么吗?
最佳答案
我自己用不同的方式做到了(没有解压缩,保持同步等......)
PF 通过能够将 web.xml 中的主题定义解释为 EL 来支持“动态”主题
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>#{myPreferences.theme}</param-value>
</context-param>
通过拥有一个“首选项”bean 并在其中设置主题名称(请参阅展示源代码,使用主题切换器时正是这样做的),您可以进行切换。你可以例如有一个
<f:event type="preRenderView" listener="#{myPreferences.chooseTheme"} />
通常在您的模板和 chooseTheme 方法中查看正在加载的页面并设置您想要的主题。你可以(我没试过)也许有一个
<f:event type="preRenderView" listener="#{myPreferences.theme('one')"} />
在通用模板中,在特定 View 中可能会覆盖它。
<f:event type="preRenderView" listener="#{myPreferences.theme('two')"} />
但我不确定后者是否有效
关于css - 如何为单个jsf页面应用jsf primefaces主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28207879/