<c:forEach>

<c:forEach>は繰り返し処理を行うJSTL(JSP標準タグライブラリ)タグである。

<c:forEach>タグの構文

<c:forEach>
  <%-- 繰り返し処理 --%>
</c:forEach>

<c:forEach>タグの属性

<c:forEach>タグには、次の属性を指定することができる。

begin
繰り返し処理を始める数を指定する。
end
繰り返し処理を終了する数を指定する。
step
次の繰り返しで増加させる数を指定する。
var
繰り返し処理される値が代入される変数の名前を指定する。
varStatus

現在のループ状態を格納するオブジェクトの名前を指定する。オブジェクトには次のプロパティが存在する。

varStatusのプロパティ
プロパティ 説明
count 1から始まるインデックス番号
current var属性で指定した変数に格納されているオブジェクト
first ループの最初の場合はtrue、その他はfalse
index 0から始まるインデックス番号
last ループの最後の場合はtrue、その他はfalse

<c:forEach>タグの使用例と出力サンプル

初期値と終了値を指定して処理を繰り返す。

<ul>
  <c:forEach begin="1" end="5" step="2" var="i">
    <li><c:out value="${i}" /></li>
  </c:forEach>
</ul>

上記のJSPから、次のHTMLが出力される。

<ul>
  <li>1</li>
  <li>3</li>
  <li>5</li>
</ul>

配列やMapなどの集合を指定して処理を繰り返す。

<%
  List list = new ArrayList();

  UserBean bean = new UserBean();
  bean.setName("麻生真彩");
  list.add(bean);

  bean = new UserBean();
  bean.setName("日高麻鈴");
  list.add(bean);

  bean = new UserBean();
  bean.setName("新谷ゆづみ");
  list.add(bean);

  request.setAttribute("users", list);
%>

<table>
  <c:forEach items="users" var="u" varStatus="s">
    <tr>
      <td><c:out value="${s.index}" /></td>
      <td><c:out value="${u.name}" /></td>
    </tr>
  </c:forEach>
</table>

上記のJSPから、次のHTMLが出力される。

<table>
  <tr>
    <td>0</td>
    <td>麻生真彩</td>
  </tr>
  <tr>
    <td>1</td>
    <td>日高麻鈴</td>
  </tr>
  <tr>
    <td>2</td>
    <td>新谷ゆづみ</td>
  </tr>
</table>

JSP

JSP (JavaServer Pages) には、他にも次のJSP標準タグライブラリ(JSTL)がある。

JSPには次のディレクティブがある。

JSPには次のアクションタグがある。