动态加载样式表(xhtml文件)

时间:2010-12-16 09:12:51

标签: java spring jsf xhtml richfaces

我正在尝试动态地重新加载样式表(用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的一部分;还是有另一种方法可以解决这个问题?

感谢。

2 个答案:

答案 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,在运行时更改皮肤

部分中介绍