Thymeleaf

logiciel informatique

Thymeleaf est un moteur de template, sous licence Apache 2.0, écrit en Java pouvant générer du XML/XHTML/HTML5. Thymeleaf peut être utilisé dans un environnement web (utilisant l'API Servlet) ou non web. Son but principal est d'être utilisé dans un environnement web pour la génération de vue pour les applications web basées sur le modèle MVC.

Thymeleaf
Description de l'image Thymeleaf Logo with name small.png.

Informations
Développé par Daniel Fernández
Dernière version 3.1.1[1]Voir et modifier les données sur Wikidata
Écrit en Java
Environnement Multiplate-forme (JVM)
Type moteur de Template
Licences Licence Apache 2.0
Site web thymeleaf.org

Caractéristiques modifier

D'après le site du projet[2], les caractéristiques de Thymeleaf sont les suivantes :

  • C'est un moteur de template écrit en Java traitant les fichiers XML, XHTML et HTML5.
  • Thymeleaf permet de traiter à la fois les fichiers appartenant à un site web ou non. Il n'y a pas dépendance vis-à-vis de l'API Servlet.
  • Thymeleaf est composé de plusieurs modules appelés dialecte :
    • Les caractéristiques d'un dialecte (par exemple : évaluation, itération, etc.) s'appliquent à travers les balises et/ou les attributs des templates.
    • Deux dialectes sont disponibles : Standard et le SpringStandard (pour les applications Spring MVC mais en utilisant la même syntaxe que le dialecte Standard).
    • Les développeurs peuvent étendre les fonctionnalités des dialectes proposés ou bien créer leur propre dialecte.
  • Plusieurs modes de template sont disponibles :
  • Le support de l’internationalisation des textes.
  • La mise en œuvre d'un cache performant et configurable permet de réduire les entrées/sorties.
  • Thymeleaf est extrêmement extensible et peut être utilisé comme framework de template.
  • Une documentation très complète contenant de nombreux exemples est disponible.

Exemple modifier

L'exemple ci-dessous produit une table dont le contenu des lignes provient d'une variable allProducts de type List<Product>.

<table>
  <thead>
    <tr>
      <th th:text="#{msgs.headers.name}">Name</th>
      <th th:text="#{msgs.headers.price}">Price</th>
    </tr>
  </thead>
  <tbody>
    <tr th:each="prod : ${allProducts}">
      <td th:text="${prod.name}">Oranges</td>
      <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td>
    </tr>
  </tbody>
</table>

Ce code met en évidence différentes caractéristiques de Thymeleaf :

  • internationalisation par l'utilisation d'expression : #{ ... }
  • évaluation d'expressions contenant des variables : ${ ... }
  • fonction facilitatrice : #numbers.formatDecimal( ... )

Ce code HTML peut être affiché correctement directement par un navigateur sans utiliser Thymeleaf. C'est une caractéristique importante de Thymeleaf appelée template naturel.

Voir aussi modifier

Liens externes modifier

Références modifier

  1. « https://www.thymeleaf.org/ »
  2. (en) « Thymeleaf », sur thymeleaf.org (consulté le ).