Conditionals in Thymeleaf

1. Panoramica

In questo tutorial, daremo uno sguardo ai diversi tipi di condizionali disponibili in Thymeleaf .

Per una rapida introduzione a Thymeleaf, fare riferimento a questo articolo.

2. Dipendenze di Maven

Cominciamo con le dipendenze Maven necessarie per utilizzare Thymeleaf insieme a Spring:

 org.thymeleaf thymeleaf 3.0.11.RELEASE   org.thymeleaf thymeleaf-spring5 3.0.11.RELEASE 

Per altre versioni Spring, dovrebbe essere usata la libreria thymeleaf-springX corrispondente , dove X sta per versione Spring. Si noti inoltre che Spring 5 è supportato a partire dalla 3.0.8.RELEASE , da Thymeleaf.

Le ultime versioni delle dipendenze richieste possono essere trovate qui.

3. condizionali foglia di timo

Dobbiamo distinguere tra condizionali che ci consentono di rendere il testo all'interno di un elemento HTML a seconda di una condizione e quelli che controllano l'istanza di un elemento HTML stesso.

Definiamo la nostra classe modello Insegnante che useremo in questo articolo:

public class Teacher implements Serializable { private String gender; private boolean isActive; private List courses = new ArrayList(); private String additionalSkills;

3.1. Operatore Elvis

L'operatore Elvis ?: Ci consente di visualizzare il testo all'interno di un elemento HTML a seconda dello stato corrente di una variabile.

Possiamo usare espressioni predefinite per fornire un testo predefinito se una variabile è nulla :

Nell'esempio in alto, vogliamo visualizzare il contenuto della variabile teacher.additionalSkills se è definita e vogliamo che il testo “ SCONOSCIUTO ” venga reso altrimenti.

È anche possibile visualizzare testo arbitrario a seconda di un'espressione booleana:

Possiamo interrogare una semplice variabile booleana come nell'esempio precedente, ma sono possibili anche confronti di stringhe e controlli di intervallo.

Sono supportati i seguenti comparatori e le loro rappresentazioni testuali > (gt),> = (ge), <(lt), <= (le), == (eq) e! = (Ne) .

3.2. Se - A meno che

Gli attributi th: if e th :less ci consentono di visualizzare un elemento HTML in base a una condizione fornita:

 Female Male 

Se il contenuto della variabile teacher.gender è uguale a una F, viene visualizzato l'elemento span con il valore " Female ".

In caso contrario, viene eseguito il rendering dell'elemento con " Male ". Una tale configurazione è paragonabile a una clausola if-else presente nella maggior parte dei linguaggi di programmazione.

3.3. Scatola dell'interruttore

Se ci sono più di due possibili risultati di un'espressione, possiamo usare gli attributi th: switch e th: case per la resa condizionale degli elementi HTML:

 NO COURSES YET! 

A seconda delle dimensioni delle teacher.courses lista che sia visualizzare un testo predefinito, l'unico corso o di tutti i corsi disponibili. L'asterisco (*) viene utilizzato per l'opzione predefinita.

4. Conclusione

In questo breve articolo, abbiamo studiato i diversi tipi di condizionali foglia di timo e presentato alcuni esempi semplificati che mostrano le varie opzioni.

Gli esempi possono essere trovati nel progetto GitHub.