こんにちは、私はまだ XPages 用の独自の Java コントロールを開発しようとしています。既存のコントロールを使用して新しいコントロールで使用する方法を知りたかったのです。
ログインポップアップコントロールのようなものを開発したいとしましょう。UIDialog を拡張しましたcom.ibm.xsp.extlib.component.dialog
が、どうすれば追加できxp:inputText
ますか?
この例では、xp:callback
ファセットをマークアップ セクションに追加できるcontrol.xsp-config
ので、標準コントロールのようにいくつかの入力フィールドをドラッグする必要がありますが、更新サイトで展開できる 1 つのコントロールだけにしたい場合はどうすればよいでしょうか.
アップデート:
わかりました、あなたのソリューション keithstric を試してみました。コンポーネントで直接作業していると思います。コンポーネントに e レンダラーを使用しています。コンポーネントをレンダラーで追加するか、コンポーネントに直接追加すると、コンポーネントツリーに違いがあります:
レンダラー:
public class MyRenderer extends Renderer {
public void encodeBegin(FacesContext context, UIComponent component)throws IOException {
ResponseWriter w = context.getResponseWriter();
NewComponentXY comp = new ComponentXY();
component.getChildren().add(comp);
}
または直接:
public class MyComponent extends UIComponentBase {
public void encodeBegin(FacesContext context, UIComponent component)throws IOException {
ResponseWriter w = context.getResponseWriter();
NewComponentXY comp = new ComponentXY();
this.getChildren().add(comp);
}
jsf ライフサイクルに違いはありますか?