A Day In The Life

とあるプログラマの備忘録

logic:iterate

Strutsのiterateタグをネストして使うときのBeanの指定の仕方がわからなくて苦戦しました。



FormBeanの構成が

public class HogeForm extends ActionForm {
 private String id = null;
 private List resultList = new ArrayList();

 ...Getter Setterは省略

}

となっていて、HogeFormのresultListもBeanで構成されています。

public class ResultBean{
 private String lineNo = null;
 private List keyList = new ArrayList();

 ...Getter Setterは省略

}

とこんな感じ。

Listの中にさらにListがあるイメージです。



これを表示させるには、JSP

<logic:iterate id="list" name="HogeForm" property="resultList">
 <bean:write property="id" name="resultList" />
 <logic:iterate id="keyList" name="list" property="keyList">
  <bean:write property="..." name="keyList" />
 </logic:iterate>
</logic:iterate>

と書いてやるとうまくいきます。



親iterateのidを子iterateのnameに指定するのがコツです。