Thymeleaf è un template engineJava MVC come Spring, ma può essere utilizzato anche come libreria autonoma.
Le caratteristiche che rendono molto appetibile Thymeleaf nell’ambito di sviluppo Java sono:
-
Integrazione nativa: Thymeleaf offre una sintassi nativa per l’integrazione con i modelli Java, rendendo facile l’accesso ai dati dalla vista.
-
Sintassi intuitiva: Thymeleaf fornisce una sintassi semplice e intuitiva per la definizione dei modelli, che è molto simile a HTML.
-
Supporto per la localizzazione: Thymeleaf include il supporto per la localizzazione delle pagine, rendendolo facile per i sviluppatori creare applicazioni multilingue.
-
Validazione HTML: Thymeleaf valida automaticamente il markup HTML, garantendo che la pagina sia ben formattata e priva di errori.
-
Integrazione con l’ambiente di sviluppo: Thymeleaf è integrato con molte piattaforme di sviluppo web come Eclipse, IntelliJ IDEA e NetBeans, rendendo facile per i sviluppatori lavorare con le pagine Thymeleaf.
I tag di Thymeleaf
Thymeleaf offre una vasta gamma di tag che possono essere utilizzati per creare pagine web dinamiche. Ecco alcuni dei tag più comuni:
1. th:text
<p th:text="'Hello, ' + ${user.name} + '!'" />
In questo esempio, il tag th:text
viene utilizzato per visualizzare un saluto dinamico che include il nome dell’utente.
2. th:utext
<p th:utext="${unsafeHtml}" />
In questo esempio, il tag th:utext
viene utilizzato per visualizzare HTML non elaborato sulle pagine.
3. th:value
<input type="text" th:value="${user.name}" />
In questo esempio, il tag th:value
viene utilizzato per impostare il valore di un elemento HTML come l’input di testo.
4. th:each
<ul>
<li th:each="item : ${items}" th:text="${item}" />
</ul>
In questo esempio, il tag th:each
viene utilizzato per ripetere un blocco di codice per ogni elemento nella lista items
.
5. th:if
<div th:if="${showMessage}" th:text="${message}" />
In questo esempio, il tag th:if
viene utilizzato per visualizzare un messaggio solo se la variabile showMessage
è vera.
6. th:unless
<div th:unless="${hideMessage}" th:text="${message}" />
In questo esempio, il tag th:unless
viene utilizzato per visualizzare un messaggio solo se la variabile hideMessage
è falsa.
7. th:field
<form th:object="${formData}" method="post">
<label for="name">Name:</label>
<input type="text" id="name" th:field="*{name}" />
...
</form>
In questo esempio, il tag th:field
viene utilizzato per associare un elemento HTML a una proprietà del modello Java, in questo caso la proprietà name
.
8. th:object
<form th:action="@{/processForm}" th:object="${formData}" method="post">
...
</form>
In questo esempio, il tag th:object
viene utilizzato per specificare il modello Java che verrà utilizzato per popolare i campi del modulo.
9. th:action
<form th:action="@{/processForm}" th:object="${formData}" method="post">
...
</form>
In questo esempio, il tag th:action
viene utilizzato per specificare l’URL a cui verranno inviati i dati del modulo quando verrà premuto il pulsante “Submit”.