html:select では bean:define タグの記述は必須[プログラミング]
(2018-09-03 12:52:15) by shinoda


以前、このブログで、JSP の実行で、

HTTPステータス 500 - javax.servlet.ServletException: javax.servlet.jsp.JspException:
Cannot find bean under name sex_list

のようなエラーが出る場合の対応について書いた。

結論として、

<bean:define id="sex_list" name="hogeForm" property="sex_list" scope="request"/>

という記述を追加してバッチリだったが、別の解として、

<html:form>タグか、<html:select>タグに name 属性で hogeForm を指定すれば良い

とも書いた。

・・・が、どうも select 項目の場合、option 項目に name 属性はないんで、<bean:define>タグの記述は必須のようである。

例えば、

<html:select name="hogeForm" property="sex">
  <html:option collection="sex_list" property="label" labelProperty="value" />
</html:select>

という具合に <html:select>タグに name 属性でフォーム bean の名前を与えても、結局「Cannot find bean under name sex_list」なエラーが出てしまう。
collection 属性で指定する項目がどのフォームbean に含まれているか、<bean:define>タグで記述しないと駄目なようだ。

自分のブログを信じて、「name 属性で指定しているから大丈夫なはず」と思い込み、ハマって貴重な時間を無駄にしてしまった(^^;

コメント投稿
次の記事へ >
< 前の記事へ
TOPへ戻る

Powered by
MT4i 3.0.8