2010-12-16 67 views
1

我正嘗試動態地重新加載樣式表(用xhtml編寫)。動態加載樣式表(xhtml文件)

爲了描述情形:

該應用程序可以通過在多語言用戶訪問;第一次加載應用程序時,將加載默認文件master-styles.xhtml,現在來自某個控制屏幕的用戶可以修改用戶想要查看屏幕的語言。現在,我想爲該特定語言加載一個不同的樣式表,將當前使用的樣式表(master-styles.xhtml);

我使用JSF,RichFaces的對UI組件:

<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

如果我理解正確你的問題,你需要動態加載的是現在/master-styles.xhtml頁面,

您可以在bean的頁面名稱,然後使用這個代碼,你可以動態加載需要

風格頁
<ui:insert name="globalStyles"> 
     <ui:include src="/WEB-INF/flows/ui/core/resources/styles/#{ThemeBean.stylePage}.xhtml"/> 
    </ui:insert> 
+0

感謝您的回覆,我嘗試通過資源包訪問它,但ui:include標記似乎沒有評估資源包的價值,並導致404頁未找到異常 – Abdul 2010-12-16 10:46:03

+0

@Abdul沒有資源包ThemeBean是一個簡單的會話範圍的bean持有主題風格用戶已選擇 – 2010-12-16 10:49:51

+0

我正在一個春天我可以使用它嗎? – Abdul 2010-12-16 11:06:30

0

確實有另一種方法來解決這類問題。 Richfaces功能外觀,它允許您一次更改所有組件的外觀。它還支持在運行時切換皮膚(例如,以便用戶可以選擇他/她自己的主題)。有關此功能的更多信息,請訪問Richfaces wiki,切換請參見5.11.7,更改運行時皮膚