以前、このブログで、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 属性で指定しているから大丈夫なはず」と思い込み、ハマって貴重な時間を無駄にしてしまった(^^;