JSTLリファレンス(逆引き)

JSPリファレンス
 
Web struts.wasureppoi.com
繰り返し(ループ):<c:forEach>
スポンサード リンク

繰り返し(ループ)処理を記述するには、<c:forEach>タグを使用します。

<c:forEach>タグの属性
属性 必須 説明
var × itemから取り出した要素を格納する変数名
items × ループする配列、または、コレクション
begin × itemsで指定した配列、または、コレクションから最初に取得するインデックス番号。デフォルトはゼロ
end × itemsで指定した配列、または、コレクションから最後に取得するインデックス番号。デフォルトは最後のインデックス番号
step × 1回のループで進めるインデックス番号
varStatus × 現在のループの状態を表すステータス変数。
ステータス変数の子要素からいろいろな情報を参照できる。
詳細は下記の表を参照

ステータス変数の一覧
変数 説明
current var属性で指定した変数に格納されている現在のオブジェクト
index 現在のループのインデックス番号(ゼロから開始したインデックス番号)
count 現在のループのインデックス番号(1から開始したインデックス番号)
first 現在がループの先頭かどうか(true/false)
last 現在がループの最後かどうか(true/false)
begin begin属性に指定した値
end end属性に指定した値
step step属性に指定した値


例1) requestスコープの変数「data」に格納されたList内のSampleBeanのプロパティ「name」の内容を全て表示する。
    また、ループのインデックス番号も表示する。

<%@ page language="java" contentType="text/html;charset=Windows-31J"%>
<%@ page import="java.util.*" %>
<%@ page import="smp.SampleBean" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<html><body>

<%
List list = new ArrayList();
SampleBean bean = new SampleBean();
bean.setName("田中");
list.add(bean);

bean = new SampleBean();
bean.setName("山本");
list.add(bean);

bean = new SampleBean();
bean.setName("鈴木");
list.add(bean);

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

<c:forEach var="obj" items="${data}" varStatus="status">
  名前:<c:out value="${obj.name}"/><br>
  index:<c:out value="${status.index}"/><br>
</c:forEach>

</body></html>

実行結果



スポンサード リンク



例2) requestスコープの変数「data」に格納されたMap内のキーと値を全て表示する。

<%@ page language="java" contentType="text/html;charset=Windows-31J"%>
<%@ page import="java.util.*" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<html><body>

<%
Map map = new HashMap();
map.put("key1","ああ");
map.put("key2","いい");
map.put("key3","うう");

request.setAttribute("data",map);
%>

<c:forEach var="obj" items="${data}" >
  キー:<c:out value="${obj.key}"/><br>
  値:<c:out value="${obj.value}"/><br>
</c:forEach>

</body></html>

 ※Mapには、プロパティ「key」と「value」を指定すればアクセスできます。
実効結果


例3) インデックス番号1からインデックス番号10になるまでループする。
     ループごとにインデックス番号は、2づつ加算される。
     インデックス番号を表示する。

<%@ page language="java" contentType="text/html;charset=Windows-31J"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<html><body>

<c:forEach begin="1" end="10" step="2" varStatus="status">
 index:<c:out value="${status.index}"/><br>
</c:forEach>

</body></html>

実行結果


スポンサード リンク

Coreタグの種類
変数をセットする:<c:set>
変数を削除する:<c:remove>
変数を出力する:<c:out>
単一の条件分岐:<c:if>
複数の条件分岐:<c:choose><c:when><c:otherwise>
繰り返し(ループ):<c:forEach>
文字列を区切り文字で分割する:<c:forTokens>
ファイルをインポートする:<c:import>
指定したURLにリダイレクトする:<c:redirect>
URLエンコードする:<c:url>
例外処理の定義:<c:catch>
パラメータを指定する:<c:param>

JSTLへ
忘れっぽいエンジニアのJakarta Strutsリファレンス TOPへ