스프링부트에서의 thymeleaf 사용방법

스프링부트는 웹 개발에 필요한 다양한 기능을 제공하는 프레임워크입니다. 이 중에서도 thymeleaf는 템플릿 엔진으로 자주 사용됩니다. thymeleaf를 사용하면 HTML, XML, JavaScript, CSS 등 다양한 형태의 문서를 생성할 수 있습니다.

1. 의존성 추가

스프링부트에서 thymeleaf를 사용하기 위해서는 먼저 의존성을 추가해야 합니다. build.gradle 파일의 dependencies 블록에 다음과 같이 추가해주세요.

implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

2. 템플릿 생성

thymeleaf를 사용하기 위해서는 HTML 파일에 thymeleaf 문법을 추가해야 합니다. thymeleaf 문법은 HTML 태그에 th 접두사를 붙여서 사용합니다. 예를 들어, 다음과 같은 코드는 th:text 속성을 사용하여 message 변수의 값을 출력합니다.

<!DOCTYPE html>
<html xmlns:th="<http://www.thymeleaf.org>">
    <head>
        <meta charset="UTF-8">
        <title>Thymeleaf Example</title>
    </head>
    <body>
        <h1 th:text="${message}"></h1>
    </body>
</html>

3. 컨트롤러 작성

템플릿에서 사용할 데이터를 제공하는 컨트롤러를 작성해야 합니다. 다음은 HelloController 클래스의 예시입니다. @Controller 애노테이션을 사용하여 컨트롤러임을 명시하고, @GetMapping 애노테이션을 사용하여 /hello 경로로 요청이 들어왔을 때 hello 메소드가 실행되도록 합니다.

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("message", "Hello, Thymeleaf!");
        return "hello";
    }

}

hello 메소드에서는 Model 객체를 사용하여 message 변수의 값을 설정합니다. 이 변수는 thymeleaf 템플릿에서 사용됩니다.

4. 실행

이제 애플리케이션을 실행하여 /hello 경로로 요청을 보내면 Hello, Thymeleaf!라는 메시지가 출력됩니다.

5. 공식문서

Tutorial: Using Thymeleaf


thymeleaf의 if-else

thymeleaf에서는 th:ifth:unless 속성을 사용하여 조건부 렌더링을 할 수 있습니다. th:if 속성은 조건이 참일 때 요소를 렌더링하고, th:unless 속성은 조건이 거짓일 때 요소를 렌더링합니다.