[Spring] Thymeleaf(타임리프)란?

2025. 9. 8. 01:07·Spring
728x90

 

 

 

 

 

 

 

1. Thymeleaf 란?

  • HTML 파일에서 동적으로 데이터를 넣어주는 템플릿 엔진
    • HTML과 Java를 연결해주는 역할
  • Java 기반 템플릿 엔진 → 주로 Java(Spring Boot)에서 사용된다
  • Spring MVC 패턴에서 V(View)에 해당하는 화면을 구현할 때 사용
    • 아래 사진처럼 return “viewname”의 View를 구현

 

 

 

 


2. Spring에서 Thymeleaf 사용하기

 

2.1. 의존성 추가

  • build.gradle : 의존성 추가
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    ...
}
  • [자동] application.properties
    • 의존성을 추가하면 아래 코드가 자동으로 추가된다
    • Thymeleaf가 기본으로 사용될 경로 : src/main/resources/templates
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

 

2.2. HTML 태그 추가

  • Thymeleaf를 사용할 HTML파일에 태그를 수정
<html xmlns:th="http://www.thymeleaf.org">

 

 

 

 


 

3. Thymeleaf 기본 문법

  • html 태그 속성에 [th:] 접두사가 붙은 속성을 사용하여 thymeleaf 문법 사용 가능
  • 기본적인 문법
표현 설명 예시
${…} Controller에서 전달한 Model 속성 값 참조 ${student.name}
*{…} 현재 객체의 속성을 간단하게 접근
(주로 th:object가 설정된 경우)
<tr th:object="${student}">
    <td th:text="*{id}"></td>
</tr>
(student.id를 의미)
#{…} messages.properties 같은
외부 자원에서 값을 가져올 때 사용
#{id}
(messages.properties 파일에 id=학생이 정의되어 있으면 학생으로 출력)
@{…} URL을 동적으로 생성 @{https://www.naver.com}
~{…} 프래그먼트 템플릿을 포함할 때 ~{fragments/header}
(fragments/header.html을 포함)
${…} + ${…} 텍스트 단순 결합 ${id} + ${name}
|… ${…} … ${…}| 리터럴 대체 (파이프 기호 | 사용) |아이디 : ${id}, 이름 : ${name}|
[if문]?[then문] if-then (단순 조건) <p th:text=”${age < 20} ? ‘청소년’”></p>
[if문]?[then문]:[else문] if-then-else (삼항 연산자처럼 사용) <p th:text="${age < 20} ? '청소년' : '성인'"></p>
<… th:with=”변수명=${값}”> 변수 선언 <div th:with=”tValue=${’hello’}”>
    <h3 th:text="${tValue}"></h3>
</div>

 

 

 

 

 

 

 

 


 

📌 References

https://yeonyeon.tistory.com/153

https://itconquest.tistory.com/entry/Spring-Boot-Thymeleaf-개념-이해하기-사용방법

 

 

 

 

 

 

 

728x90
저작자표시 비영리 (새창열림)

'Spring' 카테고리의 다른 글

[Spring] 로깅 방식과 레이어별 로깅 전략  (0) 2025.09.09
[Spring] 로깅(Logging) / 로그레벨 / 스프링에서 로깅  (0) 2025.09.09
[Spring] 테스트 / JUnit / Mockito / 스프링의 계층별 단위테스트(Controller, Service, Repository)  (4) 2025.06.14
[Spring] 스프링의 기본적인 예외처리 / 예외처리 방법  (2) 2025.06.05
[Spring] 스프링의 디렉토리 구조 : 계층형 / 도메인형  (0) 2025.06.04
'Spring' 카테고리의 다른 글
  • [Spring] 로깅 방식과 레이어별 로깅 전략
  • [Spring] 로깅(Logging) / 로그레벨 / 스프링에서 로깅
  • [Spring] 테스트 / JUnit / Mockito / 스프링의 계층별 단위테스트(Controller, Service, Repository)
  • [Spring] 스프링의 기본적인 예외처리 / 예외처리 방법
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (352)
      • Web (8)
      • Java (7)
      • Spring (26)
      • Git (16)
      • MyBatis (1)
      • FrontEnd (17)
      • JavaScript (11)
      • DevOps (6)
      • Project (0)
      • Cloud (9)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (4)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

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

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    spring
    JavaScript
    github
    clean code
    단계별로 풀어보기
    HTML
    myBatis
    db
    자료구조
    Tistory
    웹
    Python
    CSS
    c++
    SourceTree
    C
    CodeUp 기초 100제
    MySQL
    java
    git
    codeup
    VS Code
    Cloud
    aws
    알고리즘
    web
    Programmers
    BOJ
    oracle
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
[Spring] Thymeleaf(타임리프)란?
상단으로

티스토리툴바