에스제이

반응형

 

웹 개발에서 데이터를 반복적으로 출력해야 할 때 자주 사용되는 Thymeleaf의 th:each와 JSP의 forEach는 비슷한 기능을 수행하지만, 각각 고유한 특징과 장단점을 가지고 있습니다. 본 글에서는 두 문법의 차이점을 자세히 비교하고, 블로그 작성에 필요한 정보를 제공하여 독자들이 Thymeleaf와 JSP를 더욱 효과적으로 활용할 수 있도록 돕겠습니다.

 

1. 기본 문법

 - th:each는 HTML 태그에 속성으로 추가됩니다.

 - 반복 대상은 Java 컬렉션(List, Set, Map 등) 또는 배열이어야 합니다.

<tag th:each="변수 : ${컬렉션}">
    <!-- 반복될 내용 -->
</tag>

 

2. 변수 스코프

 - th:each에서 선언된 변수는 해당 반복 내에서만 사용 가능합니다.

 - 선언된 변수는 새로운 스코프를 형성하며, 반복 밖의 변수와 이름이 동일해도 겹치지 않습니다.

 

3. 인덱스 값 사용

 - th:each는 자동으로 인덱스 값을 제공합니다.

 - 변수명Stat이라는 형태의 내장 변수를 통해 접근할 수 있습니다.

    - 변수명Stat.index → 0부터 시작하는 인덱스.

    - 변수명Stat.count → 1부터 시작하는 카운트.

    - 변수명Stat.size → 컬렉션의 크기.

    - 변수명Stat.odd/even → 현재 반복이 홀수/짝수인지(Boolean).

<ul>
    <li th:each="item, iterStat : ${items}" th:text="${iterStat.index} + ' : ' + ${item}"></li>
</ul>

   

4. 조건부 반복

반복 조건 자체는 th:if 또는 th:unless와 함께 사용해야 합니다

<ul>
    <li th:each="item : ${items}" th:if="${item != null}" th:text="${item}"></li>
</ul>

 

5. thymeleaf (th:each)와 jsp (foreach) 차이점

특징 Thymeleaf (th:each) JSP (forEach)
기본 문법 HTML 속성으로 선언 JSTL 태그 사용
변수 스코프 반복 내에서만 사용 가능 반복 내에서만 사용 가능
인덱스 제공 내장 변수 (변수명Stat) 사용 varStatus 속성 사용
조건부 반복 th:if, th:unless와 함께 사용 가능 조건문(c:if)과 함께 사용
HTML 친화성 HTML 구조를 유지하며 템플릿으로 활용 가능 JSP 태그로 인해 HTML 가독성 낮아짐

 

Thymeleaf는 HTML 파일의 가독성과 유지보수성을 강조하며, JSP는 단순하고 유연한 반복 처리를 제공합니다. 사용하는 프레임워크와 프로젝트 요구사항에 맞게 선택하면 됩니다.

 

6. 추가적으로 다룰 수 있는 내용

 

[thymeleaf] if else 조건문 사용방법

안녕하세요, thymeleaf if else 사용방법에 대해서 알아보겠습니다. Thymeleaf if-else 사용방법 thymeleaf에서 if문은 태그 안에 [th:if]를 사용하여 처리합니다. 여자 남자 if-else문의 경우는 [th:if]와 [th:unless]

ssd0908.tistory.com

 

[thymeleaf] 클래스 동적추가 th:classappend 사용방법

안녕하세요, thymeleaf에서 클래스를 동적으로 추가하는 방법에 대해서 알아보도록 하겠습니다. thymeleaf 클래스 동적 추가 th:classappend 사용방법 1. 기존 태그의 클래스에 값 추가 메뉴1 메뉴1 2. 기존

ssd0908.tistory.com

 

[thymeleaf] 타임리프 날짜 date format 변환

안녕하세요, 타임리프 날짜 포맷을 변환하는 방법에 대해서 알아보도록 하겠습니다. 개발하는 프로젝트나 구조에 따라서 날짜를 데이터베이스에 저장하는 방법이 각각 다를 것입니다. 저장하

ssd0908.tistory.com

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band