ShowTable of Contents
カスタムコントロール
XPages で提供されているカスタムコントロールの機能は、何度も繰り返し利用するコントロールの組み合わせを
部品としてあらかじめ登録しておくものです。
それにより、XPages のページを作成する際にその部品を簡単に利用することができるようになります。
ひとつの XPages アプリケーション内で、同一のページ上にも、異なるページ上にも、
同じカスタムコントロールをいくつも配置することができます。
スコープ変数
XPages では、サーバーサイドのアプリケーションの内部状態を保存するために、スコープ変数と
呼ばれるものが用意されています。
その有効期間に応じて applicationScope, sessionScope, viewScope, requestScope が利用可能です。
カスタムコントロール内のサーバーサイドロジックでも、これらのスコープ変数はもちろん利用可能なのですが、
これらはいずれもアプリケーション内でグローバルなため、複数の同一カスタムコントロールを同じ XPages 内に配置した場合、
いづれのカスタムコントロールのインスタンスからも、同じ変数としてアクセスされます。
(Java でいう、クラス変数のような動作です。)
でも場合によっては、同一のカスタムコントロールであっても、それぞれのインスタンスごとに違う値を
保存したい場合もあります。
(Java でいう、インスタンス変数に相当します。)
カスタムコントロールのプライベート変数
そのような場合に利用可能な変数が compositeData 変数です。
もともと compositeData 変数とは、カスタムコントロールでカスタムプロパティを定義した際に、その設定値を
ロジック内で参照するための変数です。
例えば下図のようなカスタムプロパティを定義した場合には、ロジック内で
compositeData.propSubject
とすればその値を取得することができます。
