-Suite de Dernière fois --Créez une application CRUD simple avec Spring Boot ――Cette fois, nous allons refactoriser pour faire ressortir les parties communes de Thymeleaf.
src/main/resources/templates
└── players
├── edit.html
├── index.html
├── new.html
└── show.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8" />
<title>XXXX - baseball</title>
<link rel="stylesheet" href="/css/bootstrap.css" />
<script src="/js/jquery.js"></script>
<script src="/js/bootstrap.js"></script>
</head>
<body>
<!--Cela dépend de la page-->
</body>
</html>
pom.xml
pour maven et build.gradle
pour gradlepom.xml
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
</dependency>
build.gradle
compile('nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect')
--Créez un fichier appelé layout.html
dans src / main / resources / templates
et décrivez le contenu suivant
<!DOCTYPE html>
<!-- ① -->
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
<meta charset="utf-8" />
<!-- ② -->
<title layout:title-pattern="$DECORATOR_TITLE - $CONTENT_TITLE">baseball</title>
<link rel="stylesheet" href="/css/bootstrap.css" />
<script src="/js/jquery.js"></script>
<script src="/js/bootstrap.js"></script>
</head>
<body>
<!-- ③ -->
<div layout:fragment="content"></div>
</body>
</html>
-①: La différence avec les fichiers précédents est que la description suivante a été ajoutée.
- xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
$ DECORATOR_TITLE
.$ CONTENT_TITLE
.Titre de chaque page --baseball
--③: En ajoutant la marque <div layout: fragment =" content "> </ div>
, vous pouvez remplacer le contenu de chaque page par cette partie.src / main / resources / templates / players / index.html
<!DOCTYPE html>
<!-- ① -->
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="layout">
<head>
<!-- ② -->
<title>Listing Players</title>
</head>
<body>
<!-- ③ -->
<div class="container" layout:fragment="content">
<h1>Listing Players</h1>
<!--Omis parce que c'est long-->
</div>
</body>
</html>
--①: Les deux descriptions suivantes ont été ajoutées.
- A: xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
- B: layout:decorator="layout"
--A est identique au fichier commun, et en écrivant ceci, vous pouvez utiliser le fichier commun.
--B spécifie le fichier commun à utiliser
-Le côté droit de = correspond au nom du fichier à l'exclusion de l'extension du fichier commun
--Par exemple, si le fichier commun est dans template / sample / common.html
, la description de B est la suivante.
- layout:decorator="sample/common"
layout:decorate="~{sample/common}"
-②: Le contenu de la balise head n'est que titreListing Players - baseball
layout: fragment =" content "
, le html sous cette description peut être remplacé par la partie décrite comme layout: fragment =" content "
dans le fichier commun.src/main/resources/templates/players/new.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="layout">
<head>
<title>New Player</title>
</head>
<body>
<div class="container" layout:fragment="content">
<!--Omis parce que c'est long-->
</div>
</body>
</html>
src/main/resources/templates/players/edit.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="layout">
<head>
<title>Editing Player</title>
</head>
<body>
<div class="container" layout:fragment="content">
<!--Omis parce que c'est long-->
</div>
</body>
</html>
src/main/resources/templates/players/show.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="layout">
<head>
<title>Show Player</title>
</head>
<body>
<div class="container" layout:fragment="content">
<!--Omis parce que c'est long-->
</div>
</body>
</html>
--OK si vous faites la même opération qu'avant
Recommended Posts