JavaServer Faces 標準の複数選択リストボックスコンポーネント
を「パレット」の「標準」カテゴリからビジュアルデザイナーにドラッグすることによって、ユーザーが項目のリストから複数項目の選択が可能なリストボックスを作成できます。
複数選択リストボックスは、次の要素からなる複合コンポーネントです。
ArrayListObject オブジェクトにバインドし、そのオブジェクトを使ってユーザーの選択内容をテストできます。項目 1、項目 2、および 項目 3 です。 コンポーネントをビジュアルデザイナーにドラッグすると、次の操作を実行できます。
Object 配列にその「value」プロパティーをバインドする。このセッション Bean プロパティーを使用して、ページ送信後にユーザーの選択内容を評価できます。詳細は、このあとの「value」プロパティーの説明を参照してください。id 属性の値になります。ページ Bean では、このプロパティーの値が HtmlSelectManyCheckbox オブジェクトの名前になります。 このコンポーネントは複数の値を持つことができます。このことは、使用できる値の種類が複数あることを意味します。
multiSelectListbox.getValue() を呼び出したときに返されるオブジェクトはオブジェクト配列になります。ユーザーが選択した値を処理する方法の 1 つとして、このコンポーネントを ArrayList オブジェクトにバインドし、ユーザーがページを送信したときにその配列値を検査する方法があります。
<head> セクションで、リスト内の無効にされた項目のラベルに適用する CSS スタイルクラス。<head> セクションで、リスト内の有効にされた項目のラベルに適用する CSS スタイルクラス。SelectItems コンポーネントの「disabled」プロパティーを選択または選択解除することによって無効または有効にできます。validate メソッド内にカーソルが置かれた状態で Java エディタが開き、このコンポーネントの値の妥当性を検査するコードを挿入できます。processValueChange メソッド内にカーソルが置かれた状態で Java エディタが開き、このコンポーネントの値に変更があったとき (たとえば、ユーザーが 2 つのリスト項目を選択して、Enter キーを押したとき) に実行するコードを挿入できます。common_timeoutSubmitForm(this.form, '<コンポーネント ID>'); に設定されます。このコードによって、実行時にユーザーがコンポーネントの値を変更した場合に自動的にフォームが送信されます。フォームが送信されたら、サーバーで変換と妥当性検査が行われ、値変更のリスナーメソッドがある場合はそのメソッドが実行されてから、ページが再表示されます。
「変更時に自動送信」が設定されているコンポーネントには、仮想フォームを使用して、フォームの送信時に処理される入力フィールドを制限できます。自動送信するコンポーネントを、仮想フォームを送信するように定義した場合、自動送信時には仮想フォームに含まれるフィールドだけが処理されます。