【Java】Thymeleaf 기본 (SpringBoot)

Thymeleaf란?


  • SpringBoot에서 표준으로 사용되는 템플릿 엔진
  • 템플릿 엔진을 사용하여 웹 응용 프로그램 (MPA)을 만드는 데 필요한 기능이 추가됩니다.
  • 예를 들어 HTML 파일에 [[]]로 Java 변수 이름 [[${modelValue}]]를 쓸 수 있습니다
  • 이제 화면이 표시되면 HTML 파일이 템플릿이되어 스프링 프레임 워크가 Placefolder (= 대체 위치)를 다시 작성합니다.
  • 템플릿의 기능을 수행하는 것을 Thymeleaf라고 한다


  • 사용방법


  • build.gradle 파일의 dependencies에 Thymeleaf가 정의되어 있는지 확인
  • dependencies {
        compile('org.springframework.boot:spring-boot-starter-thymeleaf')
    }
    

    템플릿 파일 호출


  • 기본 설정은 /resources/templates/【Controller の戻り値】.html  아래에 템플릿 파일을 작성합니다.
  • 다음 예제는 Main.java에서 HelloController를 호출하고 클래스 경로 아래의 템플릿 파일을 탐색하고 src/main/resources/templates/hello.html를 템플릿 파일로 사용합니다.

  • main.java
    package sample;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class Main {
    
        public static void main(String[] args) {
            SpringApplication.run(Main.class, args);
        }
    }
    

    HelloController.java
    package sample.thymeleaf.web;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    
    @Controller
    public class HelloController {
    
        @GetMapping("/hello")
        public String hello(Model model) {
            model.addAttribute("message", "Hello Thymeleaf!!");
            return "hello";
        }
    }
    

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

    템플릿 파일에 텍스트 포함


  • th:text=【出力する値】 태그의 텍스트 요소를 출력
  • <h1 th:text="'hello world'"></h1>
  • <h1>[['hello world!!']]</h1>에서 직접 템플릿에 값을 출력 할 수도 있습니다.

    HelloController.java
    package sample.thymeleaf.web;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    
    @Controller
    public class HelloController {
    
        @GetMapping("/hello")
        public String hello() {
            return "hello";
        }
    }
    

    hello.html
    <!doctype html>
    <html xmlns:th="http://www.thymeleaf.org">
        <head>
            <meta charset="UTF-8" />
            <title>Hello Thymeleaf</title>
        </head>
        <body>
            <h1 th:text="'hello world'"></h1>
        </body>
    </html>
    
  • 좋은 웹페이지 즐겨찾기