Struts2 カスタムタグiteratorの使い方

Struts2 カスタムタグiteratorの使い方

カスタムタグのiteratorの使い方です。

<s:iterator value="Actionクラスのフィールド" var="1つの要素名" status="IteratorStatusの変数名">

jsp

<s:iterator value="hogeBeans" var="item" status="key">
  <tr>
    <td>
      <s:property value="firstName"/>
    </td>
  </tr>
</s:iterator>

Java(Bean)

public class HogeBean {
  private String firstName;
  //~
  // getter/setter
}

Java(Actionクラス)

private List<HogeBean> hogeBeans;
// ~

// getter/setter用意
public List<HogeBean> getHogeBeans() {
  return this.hogeBeans;
}

public void setHogeBeans(List<HogeBean> hogeBeans) {
  this.hogeBeans = hogeBeans;
}

getter/setter名が間違っていると正しく表示されないので要注意です。

iteratorを使わない場合は、そのままJavaコードを書くことも可能です。

<s:property value="%{hogeBeans.get(0).getFirstName()}"/>

Beanのリスト

Beanのリストをjsp側でiterateします。

Java(Bean)

public class HogeBean {
  private List<String> messages = new ArrayList<>();
  //~
  // getter/setter
}

Java(Actionクラス)

private HogeBean hogeBean;
// ~

// getter/setter用意
public HogeBean getHogeBeans() {
  return this.hogeBean;
}

public void setHogeBeans(HogeBean hogeBean) {
  this.hogeBean = hogeBean;
}

jsp

<table><tr><td>
  <s:iterator value="hogeBean.messages">
    <s:property /><br>
  </s:iterator>
</td></tr></table>

これでmessagesにaddされたメッセージを改行(<br>)ごとに表示することができます。

コメント

タイトルとURLをコピーしました