いくつかの型の選択リスト・コンポーネントを JSF ページで使用することができます。
コンボ・ボックス、リスト・ボックス、ラジオ・ボタン、
およびチェック・ボックスをユーザーのページにドラッグしてから、
動的にデータ・ソースにバインドすることができます。
このタスクについて
以下の選択リスト・コンポーネントを追加することができます。
これらは、それぞれの「プロパティー」ビュー内ですべて同じプロパティーを持つことに注意してください。
- コンボ・ボックス (selectOneMenu): ユーザーはドロップダウン・リストから 1 つの項目を選択します。
- リスト・ボックス - 単一選択 (SelectOneListbox): ユーザーはリストから 1 つの項目を選択します。
- リスト・ボックス - 複数選択 (SelectManyListbox): ユーザーは、リストから複数の項目を選択します。
- ラジオ・ボタン・グループ (selectOneRadio): ユーザーは、リストから 1 つのラジオ・ボタンを選択します。
- チェック・ボックス (selectBooleanCheckbox): ユーザーは 1 つの項目にチェックを付けるか、
またはチェックを外します。
- チェック・ボックス・グループ (selectManyCheckbox): ユーザーはリストから 1 つ以上の項目にチェックを付けます。
JSF ページへ選択コンポーネントを追加する方法:
手順
- 選択リスト・コンポーネントのいずれかを JSF ページへドラッグする。
- 選択リスト・コンポーネントの「プロパティー」ビューを開く。
- 「値」フィールドで、現行値が表示できるように、
または特定レコード・フィールドの値を変更できるように、データ・ソースにバインドすることができます。
例えば、新しい従業員レコードを作成しようとしている場合、
部門または都市を選択するための選択リストがあり、
選択する値は新しい従業員レコードの一部になります。
- チェック・ボックスまたはラジオ・ボタンの場合は、
「プロパティー」ビューの「方向」フィールドに、
「水平」または「垂直」を指定するか、またはデフォルトを受け入れる。
リスト・ボックスには、高さを行数で指定する。
- 静的選択項目に加えて、選択コンポーネントに動的選択項目を追加することができます。
動的選択項目の値には、対象のデータ・ソースから入手する。
- 「選択項目の追加」または「選択項目のセットを追加」をクリックする。 「名前」列にエントリーが追加されます。
- エントリーの名前を編集するには、「名前」列の名前をクリックしてその名前を編集する。
- 新しい項目をデータ値にバインドする場合は、
「値」セルの中をクリックしてから、セル内に表示されるボタンをクリックする。 「ページ・データ・オブジェクトの選択」ダイアログが開きます。
- 選択項目または選択項目のセットとバインドするために、
レコード・リストからプロパティーを選択して、「OK」をクリックする。
(データ・ソースが定義済みになっていなければならないので、注意してください。) 実行時に、データ・ソースから得られたリストが表示されます。
- 選択を削除するには、選択項目を選んでから「削除」をクリックする。
リスト内で選択項目を移動するには、
選択項目を選んでから「上に移動」、
または「下に移動」をクリックする。
例
その他の詳細:
動的な値の場合、選択項目のリストは 1 つまたは複数の selectitem
または selectitems タグによって生成されます。
selectitems タグの value 属性は、
選択項目を含むデータ要素を指し示します。
selectitems タグでは、以下のいずれかのフォームのデータを想定しています。
- javax.faces.component.SelectItem メンバー・オブジェクトの java.util.Collection。
SelectItem クラスでは、個々の選択項目に対するラベル、値、および説明を保持する簡易コンテナーを定義します。
- javax.faces.component.SelectItem の配列。
その他のデータ型の場合、ツールは
value を生成して、
データをこれらの必要なフォームのいずれかに変換します。
value のフォームは
selectitems.bean.label.value.toArray のようになります。各部位の説明は以下のとおりです。
- selectitems は、この変換ケースを識別する特殊なキーワードです。
- bean は、データ・モデルにおける JavaBean 型の要素を示します。
この要素は、aaa.bbb.ccc のようなマルチレベル参照になっている場合があり、
コレクション型などの任意のオブジェクトを解決できます。
- label は、bean で示されるオブジェクトのプロパティーです。
このプロパティーの値が、選択項目として表示されます。
- value は bean のもう 1 つのプロパティーであり、
選択された項目と一緒に設定されます。
デフォルトでは、label と同じになります。
- toArray は、特殊な参照ストリングを終了させるキーワードです。
「ページ・データ」ビューからバインドするときに、フィールドを個別に選択すると、
ラベルと値の両方に同じフィールドを使用する
value が必ず作成されます。
UI ラベルと渡される値に異なるストリングを使用するには、上記のパターンに従って
手動で
value を修正します。
selectitems タグの
value 属性の例を以下に示します。
- myBean.choices は、myBean という名前の Bean から
SelectItem[] プロパティー choices をバインドします。
- selectitems.EMPLOYEES.NAME.NAME.toArray は、
EMPLOYEES という名前のデータ・リストから
ストリング・プロパティーの NAME をバインドします。
- selectitems.anotherBean.choices.choices.toArray は、
anotherBean という名前の JavaBean から
choices という名前のストリング配列をバインドします。
- selectitems.EMPLOYEE.NAME.EMPID.toArray は、
選択された値の従業員 ID を使用して、EMPLOYEES
という名前のレコード・リストから従業員名を手動でバインドします。