いまさらながらStrutsを勉強しています。
すでにEOLを迎えており、近年にも脆弱性の問題で話題となりましたが、社内でStrutsを使う必要があり、よくわからないままにいろいろ手を動かしながらやっております。
jspでlogic:iterateを使ってコレクションの値をフォームのセレクトボタンに当てはめたく、いろいろやった覚書です。
次のようなコレクションをセレクトボタンに当てはめたい、というような場合、
- hogeList : ArrayList<HogeModel>
- request に setAttribute("hogelist", hogeList) としています。
- HogeModelクラス(FQCN: org.myapp.model.HogeModel)
- - id : int
- - name : String
- それぞれsetter、getterがあります。
- 対応するActionFormのプロパティ
- selectid : int
- セレクトボタンのデフォルト値
- requestにsetAttribute("default", fuga) とされているオブジェクトのidプロパティ
<html:select property="selectid" value="${default.id}"> <logid:iterate id="list" name="hogelist" type="org.myapp.model.HogeModel"> <html:option value="${list.id}"> <bean:write name="list" property="id"/>: <bean:write name="list" property="name"/> </html:option> </logic:iterate> </html:select>
これがHTMLに変換されると、
<select name="selectedid"> <option value="1">1 : hogehoge</option> <option value="2" selected="selected">2 : fugafuga</option> <option value="3">2 : hogefuga</option> </select>
となってブラウザに返ってきます。
<html:select property=".." ..
は、<select name=".." ..
に置き換わり、選択値である、value="${default.id}" は、
対応する<option value=".." にselected="selected" という属性が付加されます。
0件のコメント