課題 1.6: 関連レコード・リストのフィルター操作
始める前に、『課題 1.5: 更新ページの作成』を完了しておく必要があります。
これまでに、関連レコード・リストを使用してテーブルにあるすべてのレコードを表示する方法と、
関連レコードにフィルター条件を適用して特定レコードを選び出す方法を学習しました。
次に、ユーザーがカテゴリーによって案内広告を表示できるようにするために、
特定の基準と一致するレコードだけを表示する方法を学習します。
更新ページの場合と同様に、
ハイパーリンクからページに渡された要求カテゴリーを含むパラメーターでフィルター操作します。
複数のレコードがカテゴリーと一致することもあるために、
このフィルターは関連レコードではなく関連レコード・リストに適用されます。
フィルター操作した関連レコード・リストの作成
フィルター操作した関連レコード・リストの作成には、特定のレコードだけを表示するように、
リストをフィルター操作する特別なステップが含まれています。
update_record.jsp ページを作成したときと同様に、all_records.jsp ページでパラメーターを指定して、
このパラメーターを filtered_records.jsp ページに送信するためのリンクを使用します。
- 「プロジェクト・エクスプローラー」ビューで filtered_records.jsp ファイルをダブルクリックして開く。
- デフォルトのテキストを除去する。
- パレットから 1 つの「関連レコード・リスト」をページにドラッグすることによって、関連レコード・リストを作成する。
「関連レコード・リストの追加」ウィンドウが開きます。
- このレコード・リストを filtered_recordlist と命名する。
- 「データ・コントロールの追加」が選択されていることを確認して、「次へ」をクリックする。
- 「W5SAMPLE.ADS」テーブルをクリックする。
- 「次へ」をクリックする。
- 「タスク」の下の「フィルター結果」をクリックする。
「フィルター」ウィンドウが開きます。
- フィルター条件を作成するために、
「条件」タブ上の「追加」ボタン
をクリックする。
「条件」ウィンドウが開きます。
- 「列」ドロップダウン・リストから「メイン・カテゴリー
(MAINCATEGORY)」を選択する。
- 「値」フィールドに #{param.CAT} と入力する。
このコードはランタイム時に要求パラメーターの CAT の値として評価されます。
「条件」ウィンドウは下図のようになるはずです。

- 「OK」をクリックしてこのフィルター条件をユーザーの関連レコード・リストに適用する。
この条件は「条件」タブ上にリストされます。
- 「閉じる」をクリックする。
- 「次へ」をクリックする。
- 再び、データ・テーブルに表示するさまざまな列を選択できます。
次の列だけを選択してください。
- タイトル (TITLE)
- 説明 (DESCRIPTION)
- メイン・カテゴリー (MAINCATEGORY)
- 価格 (PRICE)
- 電話 (PHONE) 列
- 列を次の順序に配置する。
- タイトル (TITLE)
- 説明 (DESCRIPTION)
- メイン・カテゴリー (MAINCATEGORY)
- 価格 (PRICE)
- 電話 (PHONE)
「関連レコード・リストの追加」ウィンドウは下図のようになるはずです。

- 「完了」をクリックする。
関連レコード・リストがこのページに追加されます。
このリストは all_records.jsp ページ上のレコード・リストと同じように見えますが、
カテゴリーでフィルター操作されているので、一時点では
1 つのカテゴリー内のレコードのみを示しています。
- このページを保管する。
このページは下図のようになるはずです。

all_records.jsp からのリンク
更新ページの場合と同様に、ここで all_records.jsp ファイルに、filtered_records.jsp
ファイルへナビゲートするだけでなく、関連レコード・リストをフィルター操作するための
CAT パラメーターも渡すハイパーリンクを作成する必要があります。
- all_records.jsp ファイルを開く。
- 「パレット」ビューで「Faces コンポーネント」ドロワーを展開する。
- パレット・ディレクトリーから「リンク」コンポーネントをユーザーのデータ・テーブルの
{MAINCATEGORY} 出力コントロールに直接ドラッグする。
「URL の構成」ウィンドウが開きます。
- ターゲット・ページとして「URL」フィールドに
filtered_records.jsp と入力し、「ラベル」フィールドは空のままにしておく。
リンクを出力コントロールへ直接ドロップして、
「ラベル」フィールドを空のままにしておくと、このハイパーリンクは
{MAINCATEGORY} テキストをハイパーリンク・ラベルとして使用することになります。
- 「OK」をクリックする。
- リンク・アイコン
をクリックして、
次に、「プロパティー」ビューの「パラメーター」タブをクリックする。
- 「パラメーターの追加」をクリックして、新規パラメーターを作成する。
- 新規パラメーターのために、「名前」フィールドに CAT と入力する。
- CAT パラメーターを入力フォームのメイン・カテゴリー
(MAINCATEGORY) 列にバインドするには、「値」フィールドを選択して、
次にこのフィールドの「ページ・データ・オブジェクトの選択 」ボタン
をクリックする。
「ページ・データ・オブジェクトの選択」ウィンドウが開きます。
- 「データ・オブジェクト」フィールドで、all_recordlist(ADS)
関連レコード・リストから「メイン・カテゴリー (MAINCATEGORY)」列をクリックする。
- 「OK」をクリックする。
- このページを保管してテストする。
カテゴリー名をクリックすると、filtered_records.jsp ページに移動し、
そこで、そのカテゴリーの案内広告のみが表示されます。
お疲れ様でした
『モジュール 1: データ接続を扱う Web ページの作成』が完了しました。
これまでに次のことを学習しました。
- データベースの情報を Web ページに表示する
- 関連レコード、関連レコード・リスト、およびデータ・テーブルを扱う作業をする
- データベース・レコードを表示、編集、作成、および Web ページから削除する
- ハイパーリンクとコンボ・ボックス・コンポーネントを使用してレコード、またはレコード・セットにリンクする
拡張機能の追加
このモジュールでは、JavaServer Faces テクノロジーおよびツールについて紹介しました。
サイトを魅力的で、使いやすく、効率的なものにするために、
さらに多くの手段があります。
次のモジュールの『モジュール 2: 拡張機能の追加』では、
この単純な案内広告サイトを取り込んで、これをもっとビジュアル的に楽しくて、
より複雑なアプリケーションに変える方法について学習します。
ご使用のサイトを下のようにしたい場合は、次のモジュールに進んでください。
