我想在一个jsf页面上应用primefaces Trontastic主题。 我已阅读Applying PrimeFaces theme only for one JSF page的答案 我在代码中做了同样的更改。
我已经在WEB-INF \ lib文件夹中下载并保存了trontastic-1.0.10.jar。 提取罐子和资源'文件夹我创建了一个名为" primefaces-trontastic"的子文件夹。在这个文件夹中,我复制了主题中的theme.css文件以及' images'夹。在我的xhtml中,我在
中添加了以下代码<h:outputStylesheet library="primefaces-trontastic" name="theme.css" />
但我发现我的jsf页面没有变化。 我还需要做更多其他事情吗?
答案 0 :(得分:0)
我自己以不同的方式做到了(没有解压缩,保持同步......)
PF支持&#39;动态&#39;通过能够将web.xml中的主题定义解释为EL
来实现主题<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>#{myPreferences.theme}</param-value>
</context-param>
拥有一个&#39;偏好&#39; bean并在那里设置主题名称(参见showcase源代码,当使用themeswitcher时它确实很明显),你可以切换。你可以,例如有一个
<f:event type="preRenderView" listener="#{myPreferences.chooseTheme"} />
通常在您的模板中,在chooseTheme方法中查看正在加载的页面并设置所需的主题。你可以(我没试过)可能有一个
<f:event type="preRenderView" listener="#{myPreferences.theme('one')"} />
在通用模板中,在特定视图中可能会覆盖它。
<f:event type="preRenderView" listener="#{myPreferences.theme('two')"} />
但我不确定后者是否有效