読者です 読者をやめる 読者になる 読者になる

With a single step

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

ネストした繰り返し

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

ソース

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

<h1>Tutorial: Nested Foreach</h1>

<table border="1">
<c:forEach var="mapItems" items="${mapItemsItems}">
    <tr>
    <c:forEach var="m" items="${mapItems}">
        <td>${f:h(m.id)}</td>
        <td>${f:h(m.name)}</td>
    </c:forEach>
    </tr>
</c:forEach>
</table>

</body>
</html>
NestedForeachAction.java
package tutorial.action;

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

import org.seasar.struts.annotation.Execute;

public class NestedForeachAction {

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

  @Execute(validator = false)
  public String index() {
    for (int i = 0; i < 10; i++) {
      List<Map<String, Object>> mapItems = new ArrayList<Map<String, Object>>();
      for (int j = 0; j < 2; j++) {
        Map<String, Object> m = new HashMap<String, Object>();
        m.put("id", i * 10 + j);
        m.put("name", "name" + i + j);
        mapItems.add(m);
      }
      mapItemsItems.add(mapItems);
    }
    return "index.jsp";
  }
}

ポイント