私はMojarra 2.2.13を使用しています。私のプロジェクトではPrimeFaces 6.0が使用されています。JSFリソース(JavaScript)がaddComponentResourceを使用してレンダリングされない
私は自分自身のJSF UIComponent
を書いています。それはwebapp/resources/js/charts.min.js
にある少しのJavaScriptが必要です。
@ResourceDependency(name = "js/charts.min.js", target = "head")
しかし、私はいつもそれをレンダリングする必要はありません。私は@ResourceDependency
を使用して、私のコンポーネントに注釈を付けた場合、スクリプトはレンダリングです。だから私は条件付きでencodeBegin(FacesContext context)
メソッド内からのビュールートにコンポーネントリソースを追加しようとしていた。
if (condition) {
UIOutput js = new UIOutput();
js.setRendererType("javax.faces.resource.Script");
js.getAttributes().put("name", "js/charts.min.js");
context.getViewRoot().addComponentResource(context, js, "head");
writer.startElement("div", null);
writer.writeAttribute("class", "myChart", null);
// ... write chart data
writer.endElement("div");
}
これはは(myChart
はしかし、レンダリングある)スクリプトをレンダリングしません。私のログにはエラーは表示されません。どのようなアイデアをチェックしたり改善したりすることができますか?
私はPrimeFacesを使わずにテストしましたが(頭部レンダラーがこれを引き起こしているかどうかはわかりませんが)、結果は同じです。
あなたはしようとしましたJSTLタグの代わりに、Javaコードの設定? –
@ TheBitman no。 UIComponentを作成するときにどのように役立ちますか? –
コンポーネントの代わりにJSFファイルでjs LINKをフィルタリングできると思っていました。しかし、私はあなたの質問を完全に理解していない真実を伝えてください:) –