私はJSFコンポーネントに@ResourceDependency
注釈を使用してJSFページにJavascriptとCSSファイルを追加しています。@ResourceDependencyによってロードされるJavascriptファイルでELを取得する
私のJavascriptファイルでは、別のリソースファイル(JSFが必要とするMETA-INF/resourcesにある.swfファイル)を参照する必要があります。私は#{resource['swf:file.swf']}
EL式をJavaScriptコードに入れようとしましたが、解決されません。 exapmleについては
は、サーバーに次のJSファイルの:
var instance = new JSClass();
instance.setResourceUrl("#{resource['swf:file.swf']}");
ブラウザが取得します。
var instance = new JSClass();
instance.setResourceUrl("#{resource['swf:file.swf']}");
間違っています。
同じELをCSSファイルに入れても、正しく解決されます。
.instance-css-class {
background: url("#{resource['swf:file.swf']}")
}
ブラウザが取得する:サーバーで、次のCSSファイルの
.instance-css-class {
background: url("/webapp/javax.faces.resource/file.swf.jsf?ln=swf")
}
まさに私が必要なものである
が、JSファイルインチ
もちろん、私は(それにCSSクラスを添付して、DOM要素を作成し、必要なスタイルプロパティを読み込み、パース)問題の回避策として、CSSを使用することができます。しかし、それを達成するためのよりエレガントな方法がありますか? JSFライブラリのバグですか(私はMojarra 2.0.3、Jboss 6.1を使用しています)、またはその動作の理由がありますか?
は、 thoseなどの回避策を使用することはできませんので、上記のコードは、タグライブラリの一部であることに注意してください。編集 - 私は、CSSファイルからCSS属性を取得する方法を見ることができないので、CSSの回避策は、実現不可能であると思われます。だから、(作業中の)回避策も喜んで受け入れられるでしょう。
私は驚いたことに、ELがCSSで評価されたことを知りました。 Mojarraの実装では、Facesリソース要求によって要求されたリソース内でEL式を解決できるResourceHelperを使用します。それは同じタイプのリクエストであるため、ELがJSファイルで評価されないのはなぜかと思います。もし誰かがこれについて何か光を当てることができれば素晴らしいだろう。 – tasel