Conditionnels dans Thymeleaf

1. Vue d'ensemble

Dans ce tutoriel, nous allons examiner les différents types de conditionnels disponibles dans Thymeleaf .

Pour une introduction rapide à Thymeleaf, veuillez vous référer à cet article.

2. Dépendances de Maven

Commençons par les dépendances Maven requises pour utiliser Thymeleaf avec Spring:

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

Pour les autres versions de Spring, la bibliothèque thymeleaf-springX correspondante doit être utilisée, où X représente la version Spring. Veuillez également noter que Spring 5 est pris en charge à partir de 3.0.8.RELEASE , par Thymeleaf.

Les dernières versions des dépendances requises peuvent être trouvées ici.

3. Conditionnels Thymeleaf

Nous devons faire la distinction entre les conditionnelles qui nous permettent de rendre du texte dans un élément HTML en fonction d'une condition et celles qui contrôlent l'instanciation d'un élément HTML lui-même.

Définissons notre classe de modèle Teacher que nous utiliserons tout au long de cet article:

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

3.1. Opérateur Elvis

L'opérateur Elvis ?: Permet de rendre du texte dans un élément HTML en fonction de l'état actuel d'une variable.

Nous pouvons utiliser des expressions par défaut pour fournir un texte par défaut si une variable est nulle :

Dans l'exemple du haut, nous voulons afficher le contenu de la variable teacher.additionalSkills si elle est définie et nous voulons que le texte « INCONNU » soit rendu autrement.

Il est également possible d'afficher du texte arbitraire en fonction d'une expression booléenne:

Nous pouvons interroger une simple variable booléenne comme dans l'exemple précédent, mais les comparaisons de chaînes et les vérifications de plage sont également possibles.

Les comparateurs suivants et leurs représentations textuelles sont pris en charge > (gt),> = (ge), <(lt), <= (le), == (eq) et! = (Ne) .

3.2. Si - À moins que

Les attributs th: if et th: sauf nous permettent de rendre un élément HTML en fonction d'une condition fournie:

 Female Male 

Si le contenu de la variable teacher.gender est égal à un F, alors l'élément span avec la valeur « Female » est rendu.

Sinon, l'élément avec « Male » est rendu. Une telle configuration est comparable à une clause if-else présente dans la plupart des langages de programmation.

3.3. Commutateur - Boîtier

S'il y a plus de deux résultats possibles d'une expression, nous pouvons utiliser les attributs th: switch et th: case pour le rendu conditionnel des éléments HTML:

 NO COURSES YET! 

En fonction de la taille de la liste des cours d' enseignants, nous affichons soit un texte par défaut, le cours unique ou tous les cours disponibles. L'astérisque (*) est utilisé pour l'option par défaut.

4. Conclusion

Dans ce court article, nous avons étudié les différents types de conditionnels Thymeleaf et présenté quelques exemples simplifiés montrant les différentes options.

Les exemples se trouvent dans le projet GitHub.