我想让我的PrimeFaces(v2.1)应用程序使用不同的主题.
我下载了vader-1.0.0.jar并将其放在我的WEB-INF/lib文件夹中.
我在web.xml中添加了以下内容:
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>vader</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
但是当我运行应用程序时,主题不会改变.
还有什么我想念的吗?
使用PrimeFaces 2.1我就是这么说的
<link type="text/css" rel="stylesheet" href="#{request.contextPath}/themes/cupertino/skin.css"/>
Run Code Online (Sandbox Code Playgroud)
在<h:head>
页面内部(在我的例子中,是一个模板).没有别的......它有效!
您可以像这样动态定义主题:
web.xml中:
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>#{themeBeam.applicationTheme}</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
豆子:
@ApplicationScoped
@ManagedBean
public class ThemeBean {
public String getApplicationTheme() {
return "dark-hive";
}
}
Run Code Online (Sandbox Code Playgroud)
至少在 PrimeFaces 2.2 中,正确的参数web.xml
是primefaces.SKIN
:
<context-param>
<param-name>primefaces.SKIN</param-name>
<param-value>none</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
编辑@Cagatay 的评论: “primefaces.THEME 是官方参数名称,其他参数已弃用,并将在 3.0 中删除。”
这允许我使用会话范围的 bean 动态指定皮肤:
@Named @SessionScoped
public class LayoutBean
{
...
private String theme = "aristo";
...
public String getTheme()
{
return theme;
}
...
}
Run Code Online (Sandbox Code Playgroud)
然后在标记中:
<link rel="stylesheet" href="#{request.contextPath}/themes/#{layoutBean.theme}/skin.css" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
59544 次 |
最近记录: |