JSP/Servlet | JSTL(JSP Standard Tag Library) | 반복문 <c:forEach>, <c:forTokens>


반복문은 동일한 작업을 특정 횟수 만큼 반복할 때 사용한다. JSTL에서는 제일 흔하게 사용하는 <c:forEach>에 대해서 알아보자.

지시문 선언

반복문을 사용하려고 하면 JSP 페이지 상단에 JSTL core 선언이 필요하다.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:forEach> 목록을 이용한 반복문

<c:forEach>는 목록을 입력 받아서 목록의 갯수만큼 반복하는 반복문이다.

속성 설명

항목 설명 필수 여부 기본값
var 사용할 변수명 필수 없음
items Collection 객체(List, Map 등) 필수
begin 반복 시작 index. 정의되지 않을 경우 0 0
end 반복 종료 index 마지막 index
step 반복할 때마다 건너 뛸 index 갯수
varStatus 반복 상태를 알 수 있는 변수

varStatus 값 설명

리턴 설명
index int items에 정의한 항목을 가리키는 index 번호이다. 0부터 시작한다.
count int 현재 몇번째 반복인지 나타낸다. 1부터 시작한다.
first boolean 현재 반복이 첫번째인지 여부
last boolean 현재 반복이 마지막인지 여부

사용 예제

모든 속성을 사용한 예

<c:forEach var="item" items="${items}" begin="0" end="10" step="1" varStatus="status">
    <p>번호 : ${status.index}</p>
    <p>책명 : ${item.name}</p>
    <p>저자 : ${item.author}</p>
    <p>출판사 : ${item.publisher}</p>
</c:forEach>

위 예시는 ${items} 0부터 10까지 반복하면서 목록을 표시한다.

일반적인 사용 예

<c:forEach var="item" items="${items}">
    <p>번호 : ${status.index}</p>
    <p>책명 : ${item.name}</p>
    <p>저자 : ${item.author}</p>
    <p>출판사 : ${item.publisher}</p>
</c:forEach>

<c:forTokens> 토큰을 이용한 반복문

문자열을 특정기호로 잘라내어 반복하는 반복문이다. Java에서의 StringTokenizer에 비슷하게 동작한다.

속성 설명

항목 설명 필수 여부 기본값
delims 문자열을 분리를 위한 특정 기호 필수

사용 예제

<ol>
<c:forTokens var="item" items="사과,포도,바나나,수박,딸기" delims=",">
    <li>과일 : ${item}</li>
</c:forTokens>
</ol>

items에 문자열을 넣고, delims에는 분리할 기호를 넣는다. 각 토큰별로 분리된 문자열은 var로 지정된 변수로 얻어 올 수 있다.