Spring Java: thymeleaf - étendre un template
Résolu
charline159
Messages postés
208
Date d'inscription
Statut
Membre
Dernière intervention
-
charline159 Messages postés 208 Date d'inscription Statut Membre Dernière intervention -
charline159 Messages postés 208 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Thymeleaf java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
3 réponses
Bonjour,
Il faudrait que tu regardes la documentation, elle est plutôt bien faite, mais ton code est loin de correspondre à ce qu'elle décrit.
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#template-layout
Exemple :
template.html
test.html
Il faudrait que tu regardes la documentation, elle est plutôt bien faite, mais ton code est loin de correspondre à ce qu'elle décrit.
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#template-layout
Exemple :
template.html
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <body> <div th:fragment="header">Mon header</div> <div th:fragment="footer">Mon footer</div> </body> </html>
test.html
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <body> <div>Avant header</div> <div th:insert="~{template :: header}"></div> <div>Entre header et footer</div> <div th:insert="~{template :: footer}"></div> <div>Après footer</div> </body> </html>
Bonjour,
J'avais suivi ces tutos :
- https://www.kindsonthegenius.com/how-to-use-layout-page-in-spring-boot-with-thymeleaf-master-and-content-page/
- https://stackoverflow.com/questions/22212512/extend-a-view-with-thymeleaf
Du coup je trouve ça un peu étonnant que les gens parlent de xmlns:layout et layout:decorate alors que la doc officielle n'en parle pas.
J'ai essayé ton code, mais je ne vois pas trop la différence. Je peux déjà afficher mon header et mon footer dans skeleton.html qui a l'air de fonctionner correctement, mais je n'arrive pas à afficher le contenu de test.html + skeleton.html sur une seule et même page.
J'avais suivi ces tutos :
- https://www.kindsonthegenius.com/how-to-use-layout-page-in-spring-boot-with-thymeleaf-master-and-content-page/
- https://stackoverflow.com/questions/22212512/extend-a-view-with-thymeleaf
Du coup je trouve ça un peu étonnant que les gens parlent de xmlns:layout et layout:decorate alors que la doc officielle n'en parle pas.
J'ai essayé ton code, mais je ne vois pas trop la différence. Je peux déjà afficher mon header et mon footer dans skeleton.html qui a l'air de fonctionner correctement, mais je n'arrive pas à afficher le contenu de test.html + skeleton.html sur une seule et même page.
"je trouve ça un peu étonnant que les gens parlent de xmlns:layout et layout:decorate alors que la doc officielle n'en parle pas"
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html
https://ultraq.github.io/thymeleaf-layout-dialect/
xmlnspermet de définir des noms pour les éléments que tu utilises, un peu comme des variables, le nom définit ensuite permet de savoir de quel type on parle. En l'occurrence ce qui est nommé par th: et layout: ce ne sont pas les mêmes choses.
xmlns:th="http://www.thymeleaf.org"c'est le ThymeLeaf de Spring Boot, via la dépendance org.springframework.boot:spring-boot-starter-thymeleaf et dont je t'ai donné la documentation Spring précédemment :
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"c'est une bibliothèque complémentaire (qui n'est pas géré par Spring) via la dépendance nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect dont la documentation est ici :
https://ultraq.github.io/thymeleaf-layout-dialect/
J'étais déjà tombée sur https://ultraq.github.io un peu plus tôt. Dans la section Getting started, ils disent:
"This will introduce the layout namespace, and 5 new attribute processors that you can use in your templates: decorate, title-pattern, insert, replace, and fragment."
Etant donné que je peux déjà utiliser insert et replace, j'en conclus que je peux utiliser les autres tags également.
"This will introduce the layout namespace, and 5 new attribute processors that you can use in your templates: decorate, title-pattern, insert, replace, and fragment."
Etant donné que je peux déjà utiliser insert et replace, j'en conclus que je peux utiliser les autres tags également.
Pour mon fichier test.html, j'ai essayé également ce code:
donc avec cette syntaxe:
<!DOCTYPE html> <html lang="en" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{skeleton}" xmlns:th="http://www.thymeleaf.org"> <body> <div layout:fragment="content"> <!--Content of the page--> <h3>this is a page injected in another page</h3> </div> </body> </html>
donc avec cette syntaxe:
layout:decorate="~{skeleton}"mais ma page skeleton ne s'affiche toujours pas. J'obtiens seulement le contenu de test.html.