Java で記述されたカスタム コントロールがあります。簡単にするために、次のようになると仮定します。
public class HelloworldControl extends UIComponentBase {
@Override
public void decode(FacesContext context) {
String cid = this.getClientId(context);
...
super.decode(context);
}
@Override
public void encodeBegin(FacesContext context) throws IOException {
ResponseWriter writer = context.getResponseWriter();
writer.writeText("Hello world!", this);
// I want a view!!
}
@Override
public void encodeEnd(FacesContext context) throws IOException {
ResponseWriter writer = context.getResponseWriter();
...
}
public void restoreState(FacesContext context, Object state) {
Object values[] = (Object[]) state;
...
super.restoreState(context, values[0]);
}
public Object saveState(FacesContext context) {
Object values[] = ...
}
}
プログラムで子コントロールを追加したいと思います。たとえば、Hellow world テキストのすぐ下にビューをレンダリングする子ビュー コントロールが必要です。
これどうやってするの?コントロールを動的に構築するための標準的な手順は何ですか?
簡単に言えば、標準コンポーネントの階層をプログラムで構築し、それを自分のコントロールにアタッチしたいのです。