JUST GO
[공통] 타임리프 본문
타임리프(Thymeleaf)
- 타임리프(Thymeleaf)는 동적인 HTML 문서를 만들고 이를 컨트롤러와 연결시킬 수 있도록하는 템플릿 엔진의 일종이다.
- 타임리프 문법을 사용하는 모든 HTML 파일 내의 <html> 태그에는 반드시 xmlns:th="http://www.thymeleaf.org" 라는 속성 및 속성 값이 부여되어 있어야 타임리프 문법을 사용할 수 있다.
- 위치는 [프로젝트 루트]/src/main/resources/templates/ 이고, 해당 위치 아래에 있는 모든 HTML 파일은 컨트롤러에서 ModelAndView 객체를 통해 연결하고 응답으로 되돌려 줄 수 있다.
- 표현식
- ${ ... } : 자바 문법을 작성하기 위해 사용한다. 단, 문자열은 홑따옴표(')로 표시함에 유의한다.
- 속성(Attribute)
- th:each : 반복 가능한 대상이 가지는 원소를 변수로 사용하여 반복한다. 해당 속성이 부여된 태그 자체가 반복됨으로 유의한다. th:each="[원소 변수 이름] : ${[반복 가능한 대상]}" 의 형태로 사용한다.
- th:if : 속성 값이 되는 논리값이 거짓이라면 해당 태그를 제거한다.
- th:text : 해당 태그의 텍스트로의 내용을 지정한다. HTML로 작성해놓은 내용은 모두 삭제되니 유의한다.
- th:[일반 속성] : 작성한 [일반 속성] 의 값을 지정한다. 가령, th:value="${3 + 3}" 은 결과적으로 value="6" 으로 해석된다.
- index.html
<!doctype html>
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>메인 페이지임!</title>
</head>
<body>
<h1 th:text="${message}"></h1>
</body>
</html>
- HomeController
package dev.rootgo.study_web.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
// 식별자 : HomeController
@Controller(value = "dev.rootgo.study_web.controllers")
// 패키지 경로를 전체로 적어주면 겹칠 가능성이 낮아진다.
@RequestMapping(value = "/")
// 요청에 대한 매핑
public class HomeController {
@RequestMapping(value = "/")
public ModelAndView getIndex() {
ModelAndView modelAndView = new ModelAndView("home/index");
modelAndView.addObject("message", "메인 페이지임!");
return modelAndView;
}
}
'Spring Boot > 학습내용' 카테고리의 다른 글
[공통] MyBatis (1) | 2022.10.26 |
---|---|
[공통] 프로젝트 구조 (0) | 2022.10.25 |
[코드] HomeController (0) | 2022.10.25 |
[공통] 의존성 (0) | 2022.10.25 |
[공통] Spring Initializr 시작 (0) | 2022.10.25 |