JSP에서 JSTL 반복문 처리하기: c:forEach, c:forTokens 태그

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 배열의 각 요소를 반복하여 출력합니다.
JSTL <c:forEach> 태그 예제 코드 실행 화면

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<c:forTokens> 태그 예제 코드 실행 결과 화면

결론

JSTL의 반복 처리 태그를 사용하면 JSP 페이지에서 자바 코드를 삽입하지 않고도 간결하게 반복문을 구현할 수 있습니다. <c:forEach><c:forTokens> 태그를 통해 컬렉션, 배열, 문자열을 효과적으로 처리할 수 있으며, 이를 통해 JSP 페이지의 가독성과 유지보수성을 높일 수 있습니다. 다음 글에서는 더 많은 JSTL 태그와 그 활용법에 대해 알아보겠습니다.

관련 이전 게시글

위로 스크롤