昨日、optionCollectionタグを使ってコンボボックスを表示させようとしていたがエラーでまくりでおおいにはまったので、今朝はStrutsのソースを眺めつつ原因の調査。結果、必要なパラメータと仕組みが分かって無事表示されるようになった。まとめると以下のような感じ。
html:selectタグについて
- 最低限必要な属性はnameとproperty
- name属性にはページ、リクエスト、セッション(有効ならば)、アプリケーションにセットしたformBeanなどの属性(setAttributeしたname)をセット
- property属性にはname属性で指定したBeanからGetterを使って取得可能なBeanの項目名をセット
html:optionCollectionタグについて
- html:selectタグで囲む必要がある。
- 最低限必要な属性はname、value、label
- name属性にはページ、リクエスト、セッション(有効ならば)、アプリケーションにセットしたformBeanなどの属性(setAttributeしたname)をセット ※html:selectタグとは別でセッション等に格納する必要がある模様
- name属性にはListや配列をセットすること
- セットしたListにはJavaBeanがセットされていること
- value属性には生成されるoptionタグのvalue値に表示させたいBeanの項目名をセット
- label属性には生成されるoptionタグ要素の値に表示させたいBeanの項目名をセット(ここが画面に表示される)
備考
- html:htmlタグでなくともよい
- html:formタグでなくともよい
これも分かり難いか。サンプルソースのがいいけど今からから作るのも面倒だからまあいいや、昨日死ぬほど眠くなければ解決できた気もするけど、勉強になったからよしとしよう。