css - 如何为单个jsf页面应用jsf primefaces主题

标签 css jsf primefaces

我只想为一个 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/

相关文章:

ajax - Primefaces tabview : set the active index on tab change

jsf - actionListener commandLink 不适用于惰性 dataScroller

jsf - 为什么只读属性不适用于 h :selectManyCheckbox?

jquery - 如何在 NetBeans IDE 中实现 Jquery UI Themeroller

javascript - 修改 Canvas 对象

CSS:在可变宽度 div 内水平滚动图像?

validation - p :dialog gets closed on validation error of a submit with ajax ="false", 如何保持对话框打开?

java - 有没有办法在单击按钮时不发送整个 Web 表单?

css - LESS - 从 URL 导入另一个文件

css - 固定侧边栏 css 不起作用