With a single step

~千里の道も一歩からと信じたいノート~

更新可能な繰り返し

今日は「更新可能な繰り返し」を学ぶ。
例のごとく、SAStruts本家のサイトは当てにしないφ(・ω・ )

ソース

index.jsp
<%@page pageEncoding="UTF-8"%>
<html>
<head>
<title>Tutorial: Foreach Update</title>
<link rel="stylesheet" type="text/css" href="${f:url('/css/sa.css')}" />
</head>
<body>

  <h1>Tutorial: Foreach Update</h1>
  <html:errors />
  <s:form>
    <table border="1">
      <c:forEach var="mapItems" items="${mapItems}">
        <tr>
          <td><html:text name="mapItems" property="id" indexed="true" /></td>
          <td><html:text name="mapItems" property="name" indexed="true" /></td>
        </tr>
      </c:forEach>
    </table>
    <br />
    <input type="submit" name="submit" value="サブミット" />
  </s:form>
</body>
</html>
ForeachUpdateAction.java
package tutorial.action;

import javax.annotation.Resource;

import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;

import tutorial.form.ForeachUpdateForm;

public class ForeachUpdateAction {

  @ActionForm
  @Resource
  protected ForeachUpdateForm foreachUpdateForm;

  @Execute(validator = false)
  public String index() {
    foreachUpdateForm.initialize();
    return "index.jsp";
  }

  @Execute(validator = false)
  public String submit() {
    return "index.jsp";
  }
}
ForeachUpdateForm.java
package tutorial.form;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ForeachUpdateForm {

  public List<Map<String, Object>> mapItems = new ArrayList<Map<String, Object>>();

  public void initialize() {
    for (int i = 0; i < 10; i++) {
      Map<String, Object> m = new HashMap<String, Object>();
      m.put("id", i);
      m.put("name", "name" + i);
      mapItems.add(m);
    }
  }
}

ポイント