thymeleaf_layout
템플릿 레이아웃 1
템플릿에서 일부 코드 조각을 가지고 와서 사용했다면 코드 조각을 레이아웃에 넘겨서 사용하는 방법도 있다. 예를 들면
<head>에 공통으로 사용하는css,javascript같은 공통 정보들을 한 곳에 모아두고 공통으로 사용하지만 각 페이지마다 필요한 정보를 더 추가해서 사용할 수 있다.
컨트롤러
@GetMapping("/layout")
public String layout() {
return "template/layout/layoutMain";
}layout_base.html
<html xmlns:th="http://www.thymeleaf.org">
<head th:fragment="common_header(title,links)">
<title th:replace="${title}">레이아웃 타이틀</title>
<!-- 공통 -->
<link rel="stylesheet" type="text/css" media="all" th:href="@{/css/ awesomeapp.css}">
<link rel="shortcut icon" th:href="@{/images/favicon.ico}">
<script type="text/javascript" th:src="@{/sh/scripts/codebase.js}"></script>
<!-- 추가 -->
<th:block th:replace="${links}" />
</head>layoutMain.html
렌더링 된 HTML
common_header(~{::title},~{::link})현재 페이지의 title 태그와 link 태그들을 전달한다.
템플릿 레이아웃 2
<head>뿐만 아니라 HTML 전체에 적용할 수 있다.
컨트롤러
layoutFile.html
layoutExtendMain.html
렌더링 된 HTML
Last updated