ページの「head」ファセットに新しい子を追加するカスタム コンポーネントを作成したいと考えています。
このカスタム コンポーネントは、h:selectOneMenu に基づいています。jsf ページで使用すると、ユーザーは現在のテーマを簡単に変更できます。このコンポーネントで行う必要があるのは、スタイルシートの子を head ファセットに追加することです。
私のコンポーネントにはバッキング Java があります。encodeBegins() メソッドで「頭」を変更しようとしましたが、子供がまったくレンダリングされません。実装を見てみましょう:
@FacesComponent(value = "com.ramps.util.ThemeSelector")
public class ThemeSelector extends UIInput implements NamingContainer {
public void encodeBegin(FacesContext context) throws IOException {
UIComponent headFacet = context.getViewRoot().getFacet("javax_faces_location_HEAD");
Resource res = new Resource();
res.setName("...");
...
List <UIComponent> headChildren = headFacet.getChildren();
headChildren.add(res);
super.encodeBegin(context);
}
}
カスタム コンポーネントのバッキング Java から直接「head」ファセットを変更することは可能ですか? もしそうなら、私は何が欠けていますか?
よろしく