본문 바로가기

Others

타임리프(Thymeleaf)란?

타임리프(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