JavaServer Faces 標準のリストボックスコンポーネント
を「パレット」の「標準」カテゴリからビジュアルデザイナーにドラッグすることによって、ユーザーが複数項目のリストから 1 つの項目を選択可能なコンポーネントを作成できます。リストの項目がボックスに入りきらない場合は、スクロールバーが追加されます。一度に 1 つの項目だけ選択できます。複数項目の選択が可能なリストボックスが必要な場合は、「基本」カテゴリにあるリストボックスコンポーネントを使用します。
リストボックスは複合コンポーネントです。囲みコンポーネント (listbox) はリストそのもののスタイルと動作を管理し、内部コンポーネント (listboxSelectItems) は、リスト内の実際の項目へのバインドに使用されます。3 つ目の関係コンポーネント (listboxDefaultItems) は、ページに追加したリストボックスコンポーネントごとに 1 つ作成され、リストの静的デフォルト項目 (項目 1、項目 2、項目 3) からなる配列を含みます。一般には、この最後のコンポーネントは操作しません。リストボックスをページに追加すると、「ナビゲータ」ウィンドウでこれらのすべてのコンポーネントを確認できます。
リストボックスは、HTML では、1 よりも大きな値に設定された size 属性を持つ <select> タグになります。
Visual Web JSF ページにリストボックスコンポーネントを追加すると、次の操作を使用して多くのことを実行できます。
id 属性の値になります。ページ Bean では、このプロパティーの値が HtmlSelectOneList オブジェクトの名前になります。listboxSelectItems の部分で制御されます。コンポーネントの listboxSelectItemsの部分を設定する一般的な方法については、このあとの「データベースからリストを生成」を参照してください。validate メソッド内にカーソルが置かれた状態で Java エディタが開き、このコンポーネントの値の妥当性を検査するコードを挿入できます。processValueChange メソッド内にカーソルが置かれた状態で Java エディタが開き、このコンポーネントの値に変更があったとき (たとえば、このコンポーネントの値を制御する別のコンポーネントの値をユーザーが変更したとき) に実行するコードを挿入できます。common_timeoutSubmitForm(this.form, '<コンポーネント ID>'); に設定されます。このコードによって、実行時にユーザーがコンポーネントの値を変更した場合に自動的にフォームが送信されます。フォームが送信されたら、サーバーで変換と妥当性検査が行われ、値変更のリスナーメソッドがある場合はそのメソッドが実行されてから、ページが再表示されます。
「変更時に自動送信」が設定されているコンポーネントには、仮想フォームを使用して、フォームの送信時に処理される入力フィールドを制限できます。自動送信するコンポーネントを、仮想フォームを送信するように定義した場合、自動送信時には仮想フォームに含まれるフィールドだけが処理されます。