Thymeleaf

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

Informations
Développé par Daniel Fernández
Écrit en Java
Environnement Multiplate-forme (JVM)
Type moteur de Template
Licences Licence Apache 2.0
Site web thymeleaf.org

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.

Caractéristiques

[modifier | modifier le code]

D'après le site du projet[1], 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.

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.

Liens externes

[modifier | modifier le code]

Références

[modifier | modifier le code]
  1. (en) « Thymeleaf », sur thymeleaf.org (consulté le ).