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 표현식스러워 출력 값을 지정한다.