타임리프(Thymeleaf)란 View Template이라고 부른다.
뷰 템플릿(View Template)이란 Controller가 전달하는 데이터를 이용해 동적으로 화면을 구성할 수 있도록 하며, Spring Framework나 NodeJS 등.. 다양한 곳에 이용된다.
Thymeleaf는 html 태그를 기반으로 th:속성을 이용하여 동적인 View를 제공한다.
타임리프는 총 4가지의 방법으로 출력시키는데,
- 변수식 : ${}
- 메세지 방식 : #{}
- 객체변수식 : *{}
- 링크 방식 : @{}
으로 이루어져 있다.
사용방법
1. Controller 생성
@RequestMapping("/test")
public String test(Model model) {
model.addAttribute("이름","값");
return "test";
}
controller에서 메서드의 인자값에 Model객체를 넣을 수 있다. 이 Model 객체를 사용하여 addAttribute 메서드를 사용해 출력하고자 하는 정보를 원하는 이름으로 넣어 보내줄 수 있다.
++ return에는 template 이름을 넣어 src/main/resource/template/”template이름”을 출력시킨다.
2. html 파일 생성
// src/main/resource/template/test.html
<!DOCTYPE html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
html 파일을 생성할 때 꼭
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
를 넣어주어야 thymeleaf문을 사용할 수 있다.
그 후 <body> 태그 안에
<p th:text="${test}"></p>
를 넣어준다.
이것은 p 태그 안에 controller에서 넣어준 test를 이름으로 한 값들을 출력 시키겠다라는 의미이다.
여러개를 출력시키고 싶을 경우
<tbody>
<tr th:each="question : ${questionList}">
<td th:text="${question.subject}"></td>
<td th:text="${question.createDate}"></td>
</tr>
</tbody>
each를 사용해주면 된다.
'Others' 카테고리의 다른 글
SSO란 무엇일까? (0) | 2023.07.05 |
---|---|
Batch이란 무엇일까? (0) | 2023.07.04 |
URL Prefix (0) | 2022.08.16 |