我正在尝试动态地重新加载样式表(用xhtml编写)。
描述场景:
用户可以用多种语言访问应用程序;第一次加载应用程序时,会加载默认文件master-styles.xhtml,现在来自某个控制屏幕的用户可以修改用户想要查看屏幕的语言。现在,我想为该特定语言加载一个不同的样式表,废弃当前使用的样式表(master-styles.xhtml);
我正在为UI组件使用JSF,richfaces:
<html>
<head>
<sf:includeStyles />
<ui:insert name="globalStyles">
<ui:include src="/WEB-INF/flows/ui/core/resources/styles/master-styles.xhtml"/>
</ui:insert>
</head>
有没有办法丢弃这个文件并加载另一个文件作为我的CSS的一部分;还是有另一种方法可以解决这个问题?
感谢。
答案 0 :(得分:0)
如果我正确理解您的问题,您需要动态加载现在的页面/master-styles.xhtml
,
您可以在bean中设置页面名称,然后使用此代码可以动态加载所需的样式页面
<ui:insert name="globalStyles">
<ui:include src="/WEB-INF/flows/ui/core/resources/styles/#{ThemeBean.stylePage}.xhtml"/>
</ui:insert>
答案 1 :(得分:0)
确实有另一种方法可以解决这类问题。 Richfaces具有皮肤,允许您一次更改所有组件的外观。它还支持在运行时切换皮肤(例如,以便用户可以选择他/她自己的主题)。有关此功能的更多信息,请参见Richfaces wiki,切换将在 5.11.7,在运行时更改皮肤
部分中介绍