<c:forEach>は繰り返し処理を行うJSTL(JSP標準タグライブラリ)タグである。
<c:forEach>
<%-- 繰り返し処理 --%>
</c:forEach>
<c:forEach>タグには、次の属性を指定することができる。
現在のループ状態を格納するオブジェクトの名前を指定する。オブジェクトには次のプロパティが存在する。
プロパティ | 説明 |
---|---|
count | 1から始まるインデックス番号 |
current | var属性で指定した変数に格納されているオブジェクト |
first | ループの最初の場合はtrue、その他はfalse |
index | 0から始まるインデックス番号 |
last | ループの最後の場合はtrue、その他はfalse |
初期値と終了値を指定して処理を繰り返す。
<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 (JavaServer Pages) には、他にも次のJSP標準タグライブラリ(JSTL)がある。
JSPには次のディレクティブがある。
JSPには次のアクションタグがある。