JSP에서 JSTL 반복문 처리하기: c:forEach, c:forTokens 태그
이번 글에서는 JSTL의 반복 처리 태그인 <c:forEach>
와 <c:forTokens>
에 대해 살펴보고, 이를 활용하여 JSP 페이지에서 반복문을 구현하는 방법에 대해 알아봅니다. 반복 처리 태그는 JSP에서 자바 코드 없이도 간결하게 반복 작업을 수행할 수 있도록 해줍니다.
1. JSTL 반복 처리 태그 개요
JSTL의 반복 처리 태그는 컬렉션, 배열, 또는 문자열을 반복 처리할 때 사용됩니다. 이 태그들은 JSP 페이지에서 자주 사용되는 반복 작업을 간단하게 구현할 수 있게 해주며, 코드의 가독성을 높이고 유지보수를 용이하게 합니다. 주요 태그로는 <c:forEach>
와 <c:forTokens>
가 있습니다.
▼ 코어 태그 종류
- c:if: 조건이 참일 경우에만 특정 코드를 실행하는 태그입니다. 자바의
if
문과 유사하게 동작합니다. - c:choose: 여러 조건 중 하나를 선택하여 실행할 수 있는 태그입니다. 자바의
switch
문과 비슷한 역할을 합니다. - c:when:
c:choose
태그 내에서 특정 조건이 참일 때 실행되는 블록을 정의하는 태그입니다. - c:otherwise:
c:choose
태그 내에서 모든c:when
조건이 거짓일 때 실행되는 블록을 정의하는 태그입니다. - c:forEach: 컬렉션이나 배열의 요소들을 반복하여 처리할 수 있는 태그입니다.
- c:forTokens: 문자열을 토큰으로 분리하여 반복 처리를 할 수 있는 태그입니다.
- c:set: 변수를 설정하거나 값을 저장할 때 사용하는 태그입니다.
- c:remove: 설정된 변수를 제거할 때 사용하는 태그입니다.
- c:catch: 예외 처리를 위한 태그로, JSP에서 발생하는 예외를 처리할 수 있습니다.
- c:import: 외부 콘텐츠를 가져오거나 다른 페이지의 내용을 포함할 때 사용하는 태그입니다.
- c:redirect: 특정 URL로 리다이렉트할 때 사용하는 태그입니다.
2. <c:forEach> 태그
<c:forEach>
태그는 컬렉션이나 배열의 요소를 하나씩 순회하며 반복 작업을 수행할 때 사용됩니다. 자바의 for
또는 for-each
문과 유사한 역할을 합니다.
2.1 <c:forEach> 태그의 주요 속성
- items: 반복할 컬렉션 또는 배열을 지정합니다.
- var: 각 반복에서 사용할 변수를 지정합니다.
- begin, end, step: 반복의 시작, 끝, 그리고 스텝 값을 지정할 수 있습니다.
2.2 <c:forEach> 태그 예제
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
// 자바 스크립틀릿을 사용하여 배열 생성
String[] fruitsArray = {"Apple", "Banana", "Cherry", "Date"};
request.setAttribute("fruits", fruitsArray);
%>
<html>
<head>
<title>JSTL c:forEach 태그 예제</title>
</head>
<body>
<h1>JSTL c:forEach 태그 예제</h1>
<ul>
<c:forEach var="fruit" items="${fruits}">
<li>${fruit}</li>
</c:forEach>
</ul>
</body>
</html>
- 스크립틀릿 사용: JSP 페이지 내에서 자바 스크립틀릿을 사용해
String
배열을 생성하고, 이를request
객체에 저장합니다. - JSTL 활용: JSTL의
<c:forEach>
태그를 사용하여fruits
배열의 각 요소를 반복하여 출력합니다.
▼ 실행 결과

3. <c:forTokens> 태그
<c:forTokens>
태그는 문자열을 특정 구분자로 분리하여 반복 처리할 때 사용됩니다. 예를 들어, 콤마로 구분된 문자열을 개별 항목으로 처리할 수 있습니다.
3.1 <c:forTokens> 태그의 주요 속성
- items: 반복할 원본 문자열을 지정합니다.
- delims: 문자열을 분리할 구분자를 지정합니다.
- var: 각 반복에서 사용할 변수를 지정합니다.
3.2 <c:forTokens> 태그 예제
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>JSTL c:forTokens 태그 예제</title>
</head>
<body>
<h1>JSTL c:forTokens 태그 예제</h1>
<c:set var="items" value="Apple,Banana,Cherry,Date" />
<ul>
<c:forTokens var="item" items="${items}" delims=",">
<li>${item}</li>
</c:forTokens>
</ul>
</body>
</html>
이 예제에서는 items
라는 문자열을 콤마로 구분하여 <c:forTokens>
태그로 처리한 후, 각 토큰을 리스트로 출력합니다. 이 태그를 사용하면 문자열을 간단하게 분리하여 반복 처리할 수 있습니다.
▼ 실행 결과

결론
JSTL의 반복 처리 태그를 사용하면 JSP 페이지에서 자바 코드를 삽입하지 않고도 간결하게 반복문을 구현할 수 있습니다. <c:forEach>
와 <c:forTokens>
태그를 통해 컬렉션, 배열, 문자열을 효과적으로 처리할 수 있으며, 이를 통해 JSP 페이지의 가독성과 유지보수성을 높일 수 있습니다. 다음 글에서는 더 많은 JSTL 태그와 그 활용법에 대해 알아보겠습니다.
관련 이전 게시글
- JSP에서 JSTL 표준 태그 라이브러리 설정 및 사용 방법
- JSP 조건문 및 반복문 사용법
- JSP EL(Expression Language) 활용하기: 기본 문법과 예제
- JSP에서 JSTL 코어 태그로 조건문 처리: c:if, c:choose 태그
- JSP 기본 문법: 디렉티브, 스크립틀릿, 표현식, 선언문
이 글이 도움이 되셨다면 공유 부탁 드립니다.