コンポーネントタグで選択項目を作成する方法を説明します。フォームや入力項目を作成する基本的な方法については、“G.1.2 フォームを作成したい”や“G.1.3 入力項目を作成したい”を参照してください。
コンポーネントタグを使うと容易に選択項目が作成できます。
目的 | 作成方法 |
---|---|
uji:comboBoxタグを使用します。 | |
uji:listBoxタグを使用します。 |
コンボボックスを作成する
uji:comboBoxタグでコンボボックスを作成する方法は以下のとおりです。
uji:comboBoxタグに対応付けるプロパティをデータBeanに作成します。プロパティの型はuji:comboBox用の項目クラスである必要があります。項目クラスとは、入力や表示を行なうデータが格納されるクラスです。uji:comboBoxでは、com.fujitsu.uji.compo.ComboBoxクラスを項目クラスとして使用します。
表示する選択肢のラベルは項目クラスに格納します。ComboBoxクラスの場合は、add, setメソッドで選択肢を追加、設定します。
JSPにuji:comboBoxタグを記述します。1で作成したプロパティを、uji:comboBoxタグのbean, propertyアトリビュートで指定します。beanでデータBeanの名前を指定し、propertyでそのデータBeanのプロパティ名を指定します。データBeanの名前とは、DispatchContextクラスのsetResponseBeanメソッドでデータBeanに割り当てた名前です。
データBeanの記述例
import com.fujitsu.uji.DataBean; import com.fujitsu.uji.compo.ComboBox; public class MyDataBean extends DataBean { protected ComboBox item = new ComboBox(); .... public ComboBox getItem() { return item; } .... }
ここでは、ComboBox型のプロパティitemをデータBeanに作成しています。
選択肢のラベルをビジネスクラスのメソッドで指定するための記述例
public void startup(DispatchContext context) {
String[] ivalue={
"醤油","味噌","酢"
};
MyDataBean dataBean = new MyDataBean();
ComboBox item = dataBean.getItem();
for (int i = 0; i < ivalue.length; i++) item.add(ivalue[i]);
....
context.setResponseBean("body",dataBean);
}
ComboBoxクラスのaddメソッドで選択肢を追加します。
JSPの記述例
<uji:comboBox bean="body" property="item" />
bean, propertyアトリビュートで、itemプロパティを指定します。この記述により、 画面には次のように表示されます。
フォームが送信されたあと、どの選択肢が選択されたのかを項目クラスからgetSelectedIndexメソッドで取得できます。このメソッドは選択されている選択肢のインデックスを返します。
選択された選択肢のインデックスを取得する処理の記述例
public void update(DispatchContext context, MyDataBean dataBean) {
ComboBox item = dataBean.getItem();
int index = item.getSelectedIndex();
....
}
ポイント
com.fujitsu.uji.compo.ComboBoxModelインタフェースを実装したクラスを作成し、項目クラスとして使用することもできます。
リストボックスを作成する
uji:listBoxタグでリストボックスを作成する方法は、uji:comboBoxタグの使用方法と同様です。違いは以下の点です。
uji:listBoxタグに対応付けるプロパティの型はuji:listBox用の項目クラスです。uji:listBoxでは、com.fujitsu.uji.compo.ListBoxクラスを項目クラスとして使用します。
JSPにはuji:listBoxタグを記述します。リストボックスの表示行数をsizeアトリビュートで指定します。また、複数の選択肢の選択を許す場合は、multipleModeアトリビュートにtrueを指定します。
どの選択肢が選択されたかを知るには、項目クラスのgetSelectedIndexesメソッドを使用します。このメソッドは選択されている選択肢のインデックスの配列を返します。
データBeanの記述例
import com.fujitsu.uji.DataBean; import com.fujitsu.uji.compo.ListBox; public class MyDataBean extends DataBean { protected ListBox item = new ListBox(); .... public ListBox getItem() { return item; } .... }
ここでは、ListBox型のプロパティitemをデータBeanに作成しています。
選択肢のラベルをビジネスクラスのメソッドで指定するための記述例
public void startup(DispatchContext context) {
String[] ivalue={
"東京","ロンドン","パリ","ローマ"
};
MyDataBean dataBean = new MyDataBean();
ListBox item = dataBean.getItem();
for (int i = 0; i < ivalue.length; i++) item.add(ivalue[i]);
....
context.setResponseBean("body",dataBean);
}
ListBoxクラスのaddメソッドで選択肢を追加します。
JSPの記述例
<uji:listBox bean="body" property="item" size="3" multipleMode="true" />
この記述では、表示行数は3行、複数選択可となります。 画面には次のように表示されます。
ポイント
com.fujitsu.uji.compo.ComboBoxModelインタフェースを実装したクラスを作成し、項目クラスとして使用することもできます。
関連項目
UJIタグリファレンス
APIリファレンスのComboBoxクラス
APIリファレンスのListBoxクラス