JSF 1.1 ドロップダウンリストコンポーネント

関連項目

ドロップダウンリストコンポーネント ドロップダウンリストのアイコン を「パレット」の「基本」カテゴリからビジュアルデザイナーにドラッグすることによって、ユーザーがドロップボタンをクリックするとリストから項目を選択できるドロップダウンリスト (またはコンボボックス) を作成できます。

ドロップダウンリストは、最初は 1 つの項目が表示され、クリックすると複数の項目を含むドロップダウンリストが表示される項目リストです。一度に 1 つの項目だけ選択できます。ドロップダウンリストは、Java Swing および Microsoft Windows のコンボボックスに類似していて、HTML では選択リストと呼ばれます。

items」プロパティーを使用し、データベース表か配列、java.util.Collection、または com.sun.rave.web.ui.model.Optionjava.util.Map のいずれかにコンポーネントを関連付けて、リストを生成できます。このプロパティーを設定するには、コンポーネントを右クリックし、「データにバインド」を選択します。「ナビゲータ」ウィンドウで、リストに追加されるデフォルトのオブジェクトを確認できます。オブジェクトは dropDown1DefaultOptions のような名前です。このプロパティーのデフォルト設定については、後述するドロップダウンリストのデフォルト表示を参照してください。

selected 」プロパティーの値に管理 Bean のプロパティーに対応する式を設定することで現在の選択項目を表すモデルオブジェクトにコンポーネントを関連付けます。「 selected 」プロパティーをバインドするには、コンポーネントを右クリックし、「プロパティーのバインド」を選択します。

コンポーネントがはじめて描画されると、モデルオブジェクトに equals メソッドが使用され、モデルオブジェクトの「 selected 」プロパティーの値に対応するオプションが選択状態で示されます。

このコンポーネントでは、次のことを行うことができます。

ドロップダウンリストのデフォルト表示

デフォルトでは、ドロップダウンリストは、デフォルトのコンポーネント ID に基づく名前を持つ SingleSelectOptionsList 型のオブジェクトを使用して、リスト項目を表示します。たとえば、ページにはじめてドロップした最初のドロップダウンリストは、dropDown1 という名前が付けられます。また、「ナビゲータ」ウィンドウには、ドロップダウンリストに関連付けられた dropDown1DefaultOptions 配列オブジェクトが表示されます。

この配列オブジェクトの値を設定するには、ドロップダウンリストコンポーネントを右クリックし、「デフォルトオプションを設定」を選択して「オプションカスタマイザ」ダイアログを開きます。このダイアログでは、新しい項目を追加したり、既存の項目を削除したりできます。また、各項目ごとに、表示する値 (「表示」) や項目の値 (「値」) を設定できます。さらに、デフォルトで表示する項目 (「選択」) を選択することもできます。dropDown#DefaultOptions オブジェクトは配列で、「label」フィールドには「表示」の値、および「value」フィールドには「値」の値が保存されます。

次のコード例には、現在選択されている項目を決めるために、このオブジェクトおよびドロップダウンリストの「selected」プロパティーを使用し、「表示」および「値」の値 (「label」および「value」) を表示用の 2 つの静的テキストフィールドに入力する方法が示されています。ドロップダウンリストと 2 つの静的テキストコンポーネントをページに追加し、上記で説明しているようにドロップダウンリストの processValueChange メソッドにこのコードを追加し、コンポーネントに対して「変更時に自動送信」を選択する場合、ユーザーがリスト内の項目を選択すると、「表示」および「値」の値が 2 つの静的テキストフィールドに表示されます。

   String myvalue = (String)dropDown1.getSelected();
int numOptions = dropDown1DefaultOptions.getOptions().length;
int i = 0;
for (i = 0; i < numOptions; i++) {
if (myvalue.equals(dropDown1DefaultOptions.getOptions()[i].getValue()))
break;
}
if (i < numOptions) {
staticText1.setText(dropDown1DefaultOptions.getOptions()[i].getLabel());
staticText2.setText(dropDown1DefaultOptions.getOptions()[i].getValue());
} else {
staticText1.setText("not found"); // should not get here
}
関連項目
ドロップダウンリストコンポーネントの「プロパティー」ウィンドウ
コンポーネントのプロパティーのバインド
コンポーネントの手順
コンポーネント関連の手順早見表
Visual Web の「パレット」について

著作権と商標について