Spread the word!: Have you written an article or blog post about Thymeleaf? Tell us! (email, twitter,...) We'll link the best tutorials and how-to's from our website.
26 April 2013: Our Thymeleaf tutorials can now be read online in HTML format! Emanuel Rabina and Asís García have done a great job at converting them into Markdown and creating some exporting facilities so that now we can offer our tutorials both in HTML (readable online) and PDF (downloadable) format. Check them out at the documentation page.
26 March 2013: Daniel Fernández has written a guest post at the SpringSource team blog explaining the migration of the Spring Travel sample application to thymeleaf: Bringing new life to Spring Travel with Thymeleaf.
What is Thymeleaf?
Thymeleaf is a Java library. It is an XML / XHTML / HTML5 template engine (extensible to other formats) that can work both in web and non-web environments. It is better suited for serving XHTML/HTML5 at the view layer of web applications, but it can process any XML file even in offline environments.
It provides an optional module for integration with Spring MVC, so that you can use it as a complete substitute of JSP in your applications made with this technology, even with HTML5.
The main goal of Thymeleaf is to provide an elegant and well-formed way of creating templates. Its Standard and SpringStandard dialects allow you to create powerful natural templates, that can be correctly displayed by browsers and therefore work also as static prototypes. You can also extend Thymeleaf by developing your own dialects.
For more detail, have a look at the complete list of features.
What does it look like?
It looks like this:
<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>
A quick look at this piece of code reveals internationalization expressions (#{...}), variable/model-attribute evaluation expressions (${...}) and even utility functions (#numbers.formatDecimal(...)). It also shows that this fragment of (X)HTML code can be perfectly displayed by a browser as a prototype, without being executed at all —something called a natural template.
But there's so much more: full (optional) Spring MVC integration - including form binding, property editors and validation messages -, XML validation artifacts, text/javascript inlining and an intelligent template cache system.
Again, for more detail have a look at the complete list of features.
How is it distributed?
Thymeleaf is Open Source Software, and it is distributed under the terms of the Apache License 2.0.
Where can I start learning about it?
You should start by reading the tutorials at the documentation page.
How can I keep updated about Thymeleaf?
One of the best ways to do it is to follow us on twitter, but you can also subscribe to our News and Announcements Forum.
Project Status
Thymeleaf is production-ready. Current stable version is 2.0.16.
Have a question?
Post it at our User Forum.
