2010-12-16 8 views
1

動的にスタイルシート(xhtmlで書かれています)をリロードしようとしています。シナリオを記述するためにスタイルシート(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

私が正しくあなたの問題を理解している場合、あなたはあなたが豆にページ名を設定し、あなたが動的に必要なスタイルのページを読み込むことができ、このコードを使用することができ、動的に今/master-styles.xhtmlあるページをロードする必要が

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

返信いただきありがとうございます。リソースバンドル経由でアクセスしようとしましたが、ui:includeタグがリソースバンドルの値を評価していないようで、404ページが見つかりません例外例外 – Abdul

+0

@AbdulはリソースバンドルではありませんThemeBeanは、ユーザーが選択したテーマスタイルを保持する単純なセッションスコープBeanです –

+0

私はSpring私はまだそれを使用することができますか? – Abdul

0

実際にこの種の問題に取り組む代替方法があります。 Richfacesの機能スキンを使用すると、すべてのコンポーネントの外観を一度に変更できます。また、実行時に(例えば、ユーザが自分のテーマを選択できるように)スキンの切り替えをサポートする。この機能の詳細はRichfaces wikiにあります。切り替えについては、を参照してください。5.11.7ランタイム中のスキンの変更

関連する問題