<c:forTokens>

<c:forTokens> は文字列を区切り文字で分割して、繰返し処理を行うJSP標準タグライブラリ(JSTL)である。

タグ

<c:forTokens items="" delims="">
  <!-- 繰り返し処理 -->
</c:forTokens>

属性

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

begin

繰返し処理を始める最初のインデックス(0始まり)

delims

文字列を分割する区切りとなる文字を指定する。必須属性であり、省略できない。

end

繰返し処理を終える最後のインデックス

items

分割する文字列を指定する。必須属性であり、省略できない。

step

繰返し処理ごとに進めるインデックス

var

区切り文字で分割された文字列を格納する変数

varStatus

繰返し処理の状態が格納される変数を指定する。変数に格納される状態は、次のプロパティを持つ。

varStatus
プロパティ説明
beginbegin属性の値
count現在のインデックス(1始まり)
current現在のオブジェクト
endend属性の値
firstループの最初の場合はtrue、その他はfalse
index現在のインデックス(0始まり)
lastループの最後の場合はtrue、その他はfalse
stepstep属性の値

varStatusの値は次のように変化する。

varStatusの例
begin step end index count first last
0 2 5 0 1 true false
0 2 5 2 3 false false
0 2 5 4 5 false true

varStatusの値は次のように変化する。

<c:forTokens> タグの使用例を次に示す。

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
  <head>
    <title>JSTL example</titile>
  </head>
  <body>
    <c:set var="i" value="foo,bar,baz" />
    <c:forTokens items="${i}" delims="," var="v" varStatus="s">
      <c:out value="${s.index}" />
      <br>
      <c:out value="${v}" />
      <br>
    </c:forTokens>
  </body>
</html>

上記のJSPを実行すると、次に示すHTMLが生成される。

<html>
  <head>
    <title>JSTL example</titile>
  </head>
  <body>
0<br>foo<br>
1<br>bar<br>
2<br>baz<br>
  </body>
</html>

JSTL (JavaServer Pages Standard Tag Library)

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