Thymeleaf
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 
D'après le site du projet, 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 :
 XML
 XHTML 1.0 and 1.1
 HTML5
 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 
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 

 JSP
 Spring Framework
 Freemarker
 Apache Velocity

Liens externes 
 site officiel de Thymeleaf
 Spring MVC view layer: Thymeleaf vs. JSP
 
 Spring Framework
 FreeMarker
 Apache Velocity

Références 

Thymeleaf
Bibliothèque logicielle Java
Framework de programmation
Plateforme Java
Technologie web
Moteur de template
Logiciel libre sous licence Apache