Web ページで動的データを使用するには、データ・ソースを定義する必要があります。
使用できる動的データ・ソースの 1 つは関連レコード・リストです。
関連レコード・リストを使用すると、リレーショナル・データベース・テーブルからの複数レコードを表示できます。
ページ上で関連レコードを定義する場合は、そのデータを Web ページで使用可能にします。
関連レコード・リストを Faces JSP ページに追加するには、いくつかの方法があります。
- 「ページ・データ」ビューで関連レコード・リストを作成する。
ページでこのデータ・リストを表示するには、
このデータ・リストを「ページ・データ」ビューから該当ページにドラッグします。
- 関連レコード・リスト・コンポーネントをパレット上の「データ」ドロワーから該当ページにドラッグする。
この方法については、ステップ順で以下に説明します。
注: 関連レコード
または関連レコード・リストを Faces JSP に追加する場合は、
ページ・コード・ファイルが必要です。
関連レコードまたは関連レコード・リストを追加する場合に
ページ・コードの抑止をオンにしていると、
ページ・コード・ファイルの生成を許可するよう
プロンプトが出されます。
「データ」ドロワーを使用して Web ページに関連レコード・リストを追加する方法:
- パレット上の「データ」ドロワーを開く。
- 関連レコード・リスト・コンポーネントを、パレットからデータの表示先となる Faces JSP ページにドラッグする。
「関連レコード・リストの追加」ウィザードが開きます。
注: 「ターゲット・サーバー」ダイアログが開いたら、「WebSphere® Application
Server v5.1」または「WebSphere Application Server v6.0+」をリストから選択し、「OK」をクリックします。
- ページ内で使用するレコード・リスト名を入力する。
- プロジェクトの別の部分で既に定義済みの関連レコード・リストがあり、
このリストのデータを使用したい場合は、
「既存のレコードまたはレコード・リストのメタデータ定義を再利用する」をチェックしてから、
「参照」をクリックして入力ファイルを選択する。
- データ用のフィールド付きデータ・テーブル・コンポーネントを自動作成するには、
「データ・コントロールの追加」 をチェックする。
これをチェックしないと、レコード・リストは「ページ・データ」ビューに追加され、
ページから使用することはできますが、このリストのコントロールは生成されません。
後で、レコード・リストを「ページ・データ」ビューからページにドラッグして、
データ・テーブルを使用して表示することができます。
- 「次へ」をクリックします。
- 「レコード・リスト・プロパティー」パネルで、接続名を指定する (あるい
は、「新規」をクリックして新しい接続を作成する)。
- 「新規」をクリックすると、「新規接続」パネルが開きます。
- 「新規 DB 接続の作成」をクリックする。
「新規データベース接続」ウィザードが開きます。
このウィザードを使用して新規データベース接続を作成する場合の詳細については、
トピック『ウィザードを使用したデータベースへの接続』を参照してください。
- 接続が確立されたら、テーブルを選択して「次へ」をクリックする。
- 「列の選択およびその他タスク」パネルで、次の手順を実行する。
- 関連レコード・リストに組み込むべきフィールドを選択する。
- レコード・リストをさらに詳細に定義するには、
以下のタスクまたは拡張タスクのいずれかをクリックする。
- 主キーの変更: 「主キーの編集」ダイアログが開き、使用可能な列および主キー列をリストします。
矢印を使用して主キー列を変更します。
この操作はレコード・リスト定義のための主キーを定義するだけであり、
実データベースの主キーは変更しませんので注意してください。
- 配列結果: 「配列」ダイアログが開き、使用可能な列をリストします。
配列する列を選択し、それらを編成する方法 (昇順または降順) を選択します。
- フィルター結果: 「フィルター」ダイアログが開きます。追加 (+) ボタンをクリックして、
「条件」ダイアログを開きます。ここで、特定の条件に合致するレコードだけが表示されるように、
フィルターを掛けることができます。
- 別のデータベース・テーブルを関係から追加: 「関係の作成」ウィザードが開き、
現行データベースから既存の関係を作成するか、または新規の関係を作成することができます。
- 自動生成キー: 「キー生成」ダイアログが開きます。
「自動キー生成の使用」をチェックしてから、
自動キー生成に使用するテーブルおよび 2 つの列を選択します。
- 並行性コントロールの設定:「並行性」ダイアログが開きます。
並行性コントロールにより、データ・リソースが他のトランザクションによって使用不可にされる時間を最小化できます。
例えば、1 つのデータ・リソースを長時間拘束してしまう長時間トランザクションで、
この時間を最小化する場合を考えてみます。
列レベルの並行性コントロールが提供されているものとします。
この条件で、そのオリジナル・データが取り出された後に、対象のデータ・ソースが、
別のトランザクションで更新されたかどうかについてテストします。
更新用にマークされた列とそのオリジナルの値を、update ステートメントの where 文節により明示的に追加します。
したがって、対象の列の値が変更されていれば、このステートメントは失敗します。
その結果、列レベルの並行性コントロールは備わっています。
対象の列が最初にデータを検索して取り出されてから更新されていないのであれば、
保留中の更新はコミットされて、ロックが解放されます。
ロックを設定できないか、あるいは現トランザクションの開始以降に、他のトランザクションでこの列を更新されていれば、
このトランザクションはロールバックされます。
- 「次へ」をクリックします。
- 「データ・コントロールの構成」パネルで、次の手順を実行する。
- 以前に「データ・コントロールの追加」をチェックしていた場合は、
データ・コントロールを作成するために、以下の種類から 1 つを選択する。
- 複数列データ・テーブル (データ・エントリーごとに 1 つのテーブル行)
- 単一列データ・テーブル (1 エントリーごとに複数のテーブル行)
- 単一列データ・テーブル内の未フォーマット・コントロール
- 表示したい列を選択して、列のラベルを入力し、各列のコントロール・タイプを選択する。
コントロール・タイプには「出力フィールド」、「出力フォーマット済みテキスト」、「コンボ・ボックス」、
「入力フィールド」、および「入力テキスト領域」を含めることができます。
列の順序を変更するには、上矢印と下矢印を使用します。
- 「オプション」をクリックして、追加のオプションを設定する。
以下のタブが付いた「オプション」ダイアログが開きます。
- ラベル - レコードまたはデータ・テーブルにアクセシビリティー・ラベルが含まれます。
中央揃え、あるいは右端合わせまたは左端合わせになるように、ラベルを位置合わせできます。
各ラベルの最後にコロンを付けたり、各ラベルの先頭文字を大文字にしたり、
各ラベルのすべてを大文字にすることも可能です。
- 拡張 - 「深さ」の横に深さレベルを入力する。
深さレベルで、「ページ・データ」ビューに表示されるデータのレベル数を設定する。
深さ 3 を選択すると、「ページ・データ」ビューには 3 データ・レベルの関連レコード・リスト
(またはその他のデータ・ソース) が表示されます。
例えば、第 1 レベルが「ヨーロッパ」、第 2 レベルが「イタリア」、第 3 レベルが「ミラノ」の場合、
その下位の (ロケーションなど) は表示されません。
さらに、「ミラノ」の下位のレベルはこのウィザードで表示されないだけでなく、
いずれのコントロールも生成されません。
「デフォルトの深さとして使用」にチェックして、
このユーザー用のデフォルト深さレベルを変更します。
「データ・コントロールのみを作成」にチェックして、
ページのデータ・コントロールのみを作成します。
このオプションがチェックされていないと、データ・コントロールおよびその他の関連コントロールは作成されます。
例えば、入力テキスト・コンポーネントを作成する場合、
「データ・コントロールのみを作成」にチェックすると、
そのコンポーネントだけがページに作成されます。
しかし、このオプションをチェックしないと、入力テキスト・コンポーネントだけでなく、
表示エラー・コンポーネント、ラベル・コンポーネントと、
おそらく「実行」ボタンも同様に作成されます。
「ソース・コードに <label> タグをインクルード
(Include <label> tags in the source code)」に
チェック・マークを付けて、
ラベルのアクセシビリティーを向上させる <label> タグを作成します。
- ボタン - このタブはレコードの更新を行う場合に表示されます。
ユーザーのレコード更新を支援するために、
「実行」ボタンおよび「削除」ボタンの追加を選択できます。
- 「終了」をクリックする。 このページにデータ・ソースが定義されて、「ページ・データ」ビューに表示されます。
「データ・コントロールの追加」がチェックされていると、コントロールが生成されます。
チェックされていないと、このコントロールは「ページ・データ」ビューからドラッグする必要があります。
ページにデータ・テーブルが作成されると、
このデータ・テーブルおよびデータ・テーブル内の他のコンポーネントのプロパティーを設定できます。
データ・テーブルの「値」情報が既に入力済みである点に注目してください。
関連レコード・リストを追加するだけでなく、
関連レコードを Web ページに追加することもできます。
データ・テーブル、および関連レコード・リストについて、関連レコード・リストのフィルター処理について、
自動キー生成について、さらに学習される場合は、次のチュートリアルに従ってください:
チュートリアル: JavaServer Faces による Web ページでの動的情報の表示。 このチュートリアルでは、新聞の案内広告欄として機能する動的 Web サイトの設計方法を学習します。この Web サイトは、JavaServer Faces
(JSF) コンポーネントおよび Service Data Objects (SDO) コンポーネントを使用する、完全な J2EE サンプル・アプリケーションです。Web アプリケーションでは JSF テクノロジーを使用して、案内広告データが保管されているデータベースにリンクする動的 Web ページを作成します。チュートリアル: JavaServer Faces による Web ページでの動的情報の表示。 このチュートリアルでは、新聞の案内広告欄として機能する動的 Web サイトの設計方法を学習します。この Web サイトは、JavaServer Faces
(JSF) コンポーネントおよび Service Data Objects (SDO) コンポーネントを使用する、完全な J2EE サンプル・アプリケーションです。Web アプリケーションでは JSF テクノロジーを使用して、案内広告データが保管されているデータベースにリンクする動的 Web ページを作成します。