JSTL의 <c:forTokens> 태그는 <c:forEach> 태그와 속성 구성이 거의 동일하지만, 한 가지 속성이 추가되었다는 점이 다릅니다. 바로 delims 속성으로, 문자열을 분리할 때 사용할 구분자(delimiter) 문자들을 지정하는 역할을 합니다.
c:forTokens의 delims 속성
| 속성 | 설명 | 필수 여부 | 기본값 |
|---|---|---|---|
| delims | 구분자로 사용할 문자들 | 예 | 없음 |
delims 속성에는 하나 이상의 문자를 지정할 수 있으며, 지정된 각 문자는 모두 개별적인 구분자로 취급됩니다. 예를 들어 delims = ",;"처럼 설정하면 쉼표(,)와 세미콜론(;)을 모두 기준으로 문자열이 잘려 나뉘게 됩니다. 또한 items 속성에 반복 처리할 원본 문자열을, var 속성에는 각 토큰이 순서대로 담길 변수명을 지정합니다.
<c:forTokens> 사용 예제
<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<html>
<head>
<title><c:forTokens> Tag Example</title>
</head>
<body>
<c:forTokens items = "Zara,nuha,roshy" delims = "," var = "name">
<c:out value = "${name}"/><p>
</c:forTokens>
</body>
</html>
위 코드에서는 쉼표(,)로 구분된 세 개의 이름을 담은 문자열을 items에 전달하고, delims = ","를 통해 쉼표를 구분자로 지정했습니다. 루프가 한 번 돌 때마다 잘려 나온 토큰이 name 변수에 저장되고, <c:out> 태그를 통해 화면에 출력됩니다.
이 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Zara nuha roshy
이처럼 <c:forTokens> 태그는 쉼표, 공백, 세미콜론 등 특정 문자로 구분된 문자열 데이터를 손쉽게 순회 처리할 수 있어, 목록 형태의 문자열을 화면에 출력하거나 가공할 때 매우 유용하게 활용됩니다.