Thymeleaf pour Java : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que Thymeleaf et pourquoi l'utiliser ?

Thymeleaf est un moteur de templates côté serveur moderne pour les applications Java, conçu pour générer des fichiers HTML, XML, JavaScript, CSS et textuels. Contrairement à JSP (JavaServer Pages), Thymeleaf offre une syntaxe plus propre, plus lisible et naturelle, facile à comprendre aussi bien pour les développeurs que pour les designers.

Le principal avantage de Thymeleaf est que ses templates sont des documents HTML valides. Cela signifie que vous pouvez ouvrir un template dans un navigateur sans lancer de serveur et visualiser sa structure. Les données dynamiques sont insérées via des attributs spéciaux commençant par le préfixe th:.

Thymeleaf s'intègre parfaitement avec Spring Framework (notamment Spring Boot), mais peut également être utilisé comme bibliothèque autonome. Il prend en charge les layouts, les fragments, les conditions, les boucles, la gestion des formulaires, l'internationalisation (i18n) et bien plus encore.

Installation de Thymeleaf

Thymeleaf étant une bibliothèque Java, elle s'installe via les systèmes de gestion de dépendances Maven ou Gradle. Il n'existe pas d'équivalent de pip install pour Java.

Installation avec Maven (pom.xml)

<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>3.1.2.RELEASE</version>
</dependency>

Installation avec Gradle (build.gradle)

implementation 'org.thymeleaf:thymeleaf:3.1.2.RELEASE'

Pour Spring Boot (recommandé)

Si vous utilisez Spring Boot, ajoutez simplement le starter :

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

Spring Boot configure automatiquement Thymeleaf avec des paramètres par défaut optimaux.

Démarrage rapide avec un exemple de code

Créons une application console simple qui utilise Thymeleaf pour générer du HTML.

Étape 1 : Créez un template (src/main/resources/templates/hello.html)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Bonjour Thymeleaf</title>
</head>
<body>
    <h1 th:text="${message}">Message par défaut</h1>
    <p>Date actuelle : <span th:text="${#dates.format(#dates.createNow(), 'dd-MM-yyyy')}">01-01-2024</span></p>
</body>
</html>

Étape 2 : Écrivez le code Java pour traiter le template

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

public class ThymeleafQuickStart {
    public static void main(String[] args) {
        // 1. Configuration du résolveur de templates
        ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
        resolver.setPrefix("/templates/");
        resolver.setSuffix(".html");
        resolver.setTemplateMode("HTML");

        // 2. Création du moteur de templates
        TemplateEngine engine = new TemplateEngine();
        engine.setTemplateResolver(resolver);

        // 3. Création du contexte avec les données
        Context context = new Context();
        context.setVariable("message", "Bonjour, Thymeleaf !");

        // 4. Traitement du template
        String result = engine.process("hello", context);
        
        System.out.println(result);
    }
}

Résultat de l'exécution :

<!DOCTYPE html>
<html>
<head>
    <title>Bonjour Thymeleaf</title>
</head>
<body>
    <h1>Bonjour, Thymeleaf !</h1>
    <p>Date actuelle : <span>15-03-2024</span></p>
</body>
</html>

Méthodes et fonctions essentielles de Thymeleaf

1. th:text — affichage de texte

Recommendations