[Thymeleaf] 블록

2025. 9. 16. 19:35·타임리프

웹 화면을 만들다 보면 데이터를 반복 출력하거나 조건부로 보여줘야 할 때가 많다. 보통은 <div>나 <span> 같은 HTML 태그에 타임리프 속성을 붙여 처리한다. 하지만 어떤 경우에는 굳이 의미 없는 태그를 추가해야 하는 상황이 생긴다

.

오늘은 이런 상황을 해결하기 위해 타임리프에서 제공하는 유일한 자체 태그 <th:block>에 대해 알아본다. <th:block>은 화면에는 출력되지 않지만, 반복문이나 조건문을 묶는 용도로 활용할 수 있어 매우 유용하다.

 

1. 컨트롤러에서 데이터 준비하기

예제를 위해 컨트롤러에서 사용자 리스트를 모델에 담아 뷰로 넘긴다.

@GetMapping("/block")
public String block(Model model) {
    addUsers(model);
    return "basic/block";
}

private void addUsers(Model model) {
    List<User> list = new ArrayList<>();
    list.add(new User("userA", 10));
    list.add(new User("userB", 20));
    list.add(new User("userC", 30));
    model.addAttribute("users", list);
}

 

 

2. 뷰 템플릿에서 <th:block> 사용하기

<th:block>은 실제 HTML 태그가 아니므로 화면에 남지 않는다. 대신 내부 태그를 반복하거나 조건에 따라 출력할 때 사용한다.

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<th:block th:each="user : ${users}">
  <div>
    사용자 이름1 <span th:text="${user.username}"></span>
    사용자 나이1 <span th:text="${user.age}"></span>
  </div>
  <div>
    요약 <span th:text="${user.username} + ' / ' + ${user.age}"></span>
  </div>
</th:block>
</body>
</html>

 

3. 실행 결과

렌더링 결과에서는 <th:block> 자체는 사라지고, 내부의 태그만 반복된다.

 

 

4. 언제 쓰면 좋을까?

타임리프의 대부분 기능은 HTML 속성(th:*) 형태로 적용한다. 그런데 상황에 따라 특정 태그에 기능을 넣기 애매한 경우가 있다.

 

예를 들어 반복문 안에서 여러 줄의 <div>나 <span>을 동시에 반복 처리해야 할 때, 굳이 불필요한 부모 태그를 추가할 필요가 없다.

이럴 때 <th:block>을 사용하면 HTML 구조를 해치지 않으면서도 반복과 조건 처리를 깔끔하게 구현할 수 있다.

 

 

마무리하며

이번 글에서는 타임리프의 <th:block> 태그를 살펴보았다. <th:block>은 렌더링 시 제거되기 때문에 화면에는 남지 않으면서도 반복과 조건문을 묶어서 처리할 수 있도록 도와준다.

 

즉, 불필요한 HTML 태그를 만들지 않아도 되고, 코드 가독성이 훨씬 좋아진다. 타임리프는 이런 세세한 기능을 제공함으로써 개발자가 실제 화면 구현에 집중할 수 있도록 지원한다.

 

이는실제로 권장되지 않지만 꼭 사용해야 할때 사용하면 좋다.

 

 

감사합니다.

 

'타임리프' 카테고리의 다른 글

[Thymeleaf] 템플릿 조각  (0) 2025.09.16
[Thymeleaf] 자바스크립트 인라인  (0) 2025.09.16
[Thymeleaf] 주석  (0) 2025.09.16
[Thymeleaf] 조건부 평가 (if, unless, switch)  (0) 2025.09.16
[Thymeleaf] 반복  (0) 2025.09.16
'타임리프' 카테고리의 다른 글
  • [Thymeleaf] 템플릿 조각
  • [Thymeleaf] 자바스크립트 인라인
  • [Thymeleaf] 주석
  • [Thymeleaf] 조건부 평가 (if, unless, switch)
0kingki_
0kingki_
자바 + 스프링 웹 개발
  • 0kingki_
    0kingki_
    0kingki_
  • 전체
    오늘
    어제
    • 분류 전체보기 (134)
      • 코딩 테스트 (54)
      • 자바 (21)
      • 스프링 (27)
      • 타임리프 (16)
      • 스프링 데이터 JPA (8)
      • 최적화 (2)
      • QueryDSL (4)
      • AWS (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    spring
    자바
    예외 처리
    객체지향
    백준
    쿼리dsl
    dfs
    재귀
    LocalDateTime
    쿼리
    QueryDSL
    컬렉션
    타임리프
    SpringDataJpa
    mvc
    예외처리
    스프링 컨테이너
    코딩 테스트
    다형성
    Java
    불변객체
    JPA
    최적화
    BFS
    fetch join
    스프링 데이터 JPA
    스프링
    thymeleaf
    SOLID
    코딩테스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
0kingki_
[Thymeleaf] 블록
상단으로

티스토리툴바