<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属性の値

<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)には、他にも次のタグがある。