いまさらながら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" という属性が付加されます。


 
記事を共有する
カテゴリー: JavaJava 覚書

zaturendo

中小企業社内SE。

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。