Spring Boot | Thymeleaf 엔진 사용 | 화면에 값을 포함

코드 작성

src/main/java/sample/springboot/web/Hoge.java

package sample.springboot.web;

public class Hoge {

    public int id;
    public String value;

    @Override
    public String toString() {
        return "Hoge [id=" + id + ", value=" + value + "]";
    }
}

src/main/java/sample/springboot/web/HelloController.java

package sample.springboot.web;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/hello")
public class HelloController {

    @RequestMapping(method=RequestMethod.GET)
    public String hello(Model model) {
        Hoge hoge = new Hoge();
        hoge.id = 10;
        hoge.value = "hoge";

        model.addAttribute("myData", hoge);

        return "hello";
    }
}

src/main/resources/templates/hello.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
  <head>
    <meta charset="UTF-8" />
    <title>Hello Thymeleaf</title>
  </head>
  <body>
    <dl>
      <dt>id</dt>
      <dd th:text="${myData.id}"></dd>

      <dt>value</dt>
      <dd th:text="${myData.value}"></dd>
    </dl>
  </body>
</html>

실행 결과

브라우저로 http://localhost:8080/hello 에 접속한다.

설명

  • 컨트롤러 메소드에서 Model을 인수받을 수 있도록 한다.
  • 이 Model의 addAttribute () 메소드를 사용하여 화면에 출력하고 싶은 정보를 설정한다.
  • 화면 측에서 먼저 Thymeleaf에 대한 네임 스페이스를 정의 (xmlns : th)
    • th : text 속성에 지정된 값을 텍스트로 출력한다.
    • th : text의 값은 $ {…}와 같이 EL 표현식스러워 출력 값을 지정한다.