ShowTable of Contents
XPages で定義したデータソースは、各種コントロールにデータバインドしてアクセスします。
データバインドを指定する方法を解説します。
シリーズ目次:
コントロールの配置とデータバインド方法
データバインドの対象となるコントロールの配置方法と合わせて、データバインドを設定するには以下の方法が利用可能です。
ビューコントロールの配置と同時に自動でデータバインドする
ビューコントロールを XPage やカスタムコントロール内に配置しようとすると、自動的に Domino ビューデータソースの定義が開始されます。
定義が完了すると、ビューコントロールが配置されると同時にそのコントロールに対して定義したデータソースが自動的にバインドされます。

データビューからコントロールを配置すると同時に自動でデータバインドする
右サイドバーペインの「データ」ビューからアクセスするデータソース選択し、更に利用するフィールド群を選択します。
選択したフィールド群をドラッグして、「編集」ビューにドロップします。
それぞれのフィールドに対して、バインドするコントロールの種類を選択して「OK」をクリックします。
左カラムにラベル、右カラムに選択した種類のコントロールが配置されたn行2列の表コントロールが自動的に生成されます。
各コントロールには、データバインドが自動的に行われます。
この例では、Domino 文書タイプのデータソースを利用していますが、Domino ビュータイプのデータソースに対しても同様の方法で
コントロールの配置およびデータバインドの設定を行うことができます。
この場合、自動的に生成、配置されるのは表コントロールではなく、ビューコントロールとなります。
コントロールを配置後、個別にデータバインドする
これまでの方法では、データバインドはコントロールの配置とともに自動的に行われましたが、個々のコントロールに対して手動で
データバインドを行うこともできます。
最初に、任意の入出力用コントロールを配置します。配置後、「プロパティ」ビューの「データ」タブを選択します。
「使用するバインドデータ」として「単純データバインディング」を選択し、「データバインディング」欄の「データソース」として
定義済みのデータソース名を、「バインド先」としてそのデータソースが提供するフィールド名を選択します。
いずれの方法を用いても、各コントロールはバインドされたデータソースからデータを取得しページロード時に初期値として表示し、
編集可能なコントロールであった場合には、ユーザーから入力された値をバインドされたデータソースに保管します。
データバインドの種類
各コントロールの「プロパティ」ビューの「データ」タブでは、さまざまな種類のデータバインド方法を提供しています。
単純データバインディング
データソース名およびフィールド名のペアを指定してデータバインディングを行います。
この方法でデータソースをバインドした場合、データソースから取得した値が初期値としてページに表示され、
編集モードで用意したデータソースを編集用コントロールにバインドしていた場合には、編集結果がデータソースに保管されます。

JavaScript
JavaScript によるロジックを利用してデータバインドを行います。
Domino 文書データソースは NotesXspDocument クラスの、Domino ビューデータソースは lotus.domino.local.View クラスのインスタンスです。
それぞれのクラスがサポートするメソッドを利用して必要な値を取り出します。
単純にデータソースのフィールド値を出力するのではなく、何らかのロジックで加工した後出力する必要がある場合に利用します。
この方法を用いた場合には、編集モードで用意したデータソースを編集用コントロールにバインドしていても、データは表示モードとして表示され、
ユーザーはデータの編集操作を行うことはできません。
以下の例は、document1 データソースの Subject フィールドの値を用いる点で、上記「単純データバインディング」の例と同等ですが、
ユーザーによる編集作業ができない点が異なります。
サポートするメソッドに関しては、オンラインヘルプの「Lotus Domino Designer XPage のリファレンス」を参照してください。

詳細
「使用するバインドデータ」として「詳細」を選択すると、より詳細な設定が可能となります。利用可能なオプションは以下の4つになります。
- 式言語 (EL)
- コンポーネントパラメータ
- スコープ変数
- カスタム

式言語 (EL)
JavaEE 標準である JSP 2.0から導入された、データソースを指定するための表現式 Expression Language を用いて、
データソースを指定します。
「データソース名.フィールド名」の表記が基本的な利用方法です。「単純データバインディング」による指定は、内部的には
この式言語による表現として保存されます。以下の画面例は上記「単純データバインディング」の例と同等です。
EL に関する詳細については、JavaEE の仕様を参照してください。
この方法を用いたデータバインディングを行った場合には、ユーザーによるデータの編集および保管操作が可能です。

コンポーネントパラメータ
作成した XPage をコンポジットアプリケーションのコンポーネントとして利用する場合、他のコンポーネントと
データをやり取りする際に用いるオプションです。今回のトピックの範囲外となるため、ここでは詳細な解説は行いません。
スコープ変数
データソースではなく、スコープ変数にデータバインドする際に用いるオプションです。
今回のトピックの範囲外となるため、ここでは詳細な解説は行いません。

カスタム
このオプションを利用すると、XPage のソース形式である XSP 内で用いられている内部形式で
データバインディング指定を直接編集できます。
以下の例は、式言語を用いたデータバインドを内部形式で表したものです。この例は上記「式言語 (EL)」の例と同等です。
EL式は、#{} でくくられて表されます。
同様にして、JavaScript によるデータバインドは、以下のようになります。この例は上記「JavaScript」の例と同等です。
JavaScript よるロジックは、#{javascript:} でくくられて表されます。
