Conditionals dans Thymeleaf

Conditions dans Thymeleaf

1. Vue d'ensemble

Dans ce tutoriel, nous allons jeter un œil auxdifferent types of conditionals available in Thymeleaf.

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

2. Dépendances Maven

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


    org.thymeleaf
    thymeleaf
    3.0.9.RELEASE


    org.thymeleaf
    thymeleaf-spring5
    3.0.9.RELEASE

Pour les autres versions de Spring, la slibrarythymeleaf-springX correspondante doit être utilisée, oùcorrespond à la version Spring. Veuillez également noter queSpring 5 is supported starting with 3.0.8.RELEASE, by Thymeleaf.

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

3. Conditions Thymeleaf

Nous devons faire la distinction entre les conditions qui 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 smodelTeacher 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. Elvis Opérateur

L'opérateur Elvis?: nous permet de rendre le 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 estnull:

Dans l'exemple du haut, nous voulons afficher le contenu de la variableteacher.additionalSkillsi elle est définie et nous voulons que le texte «UNKNOWN» 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 des comparaisons de chaînes et des vérifications de plage sont également possibles.

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

3.2. Si - sauf

Les attributsth:ifand_th: sauf_ nous permettent de rendre un élément HTML en fonction d'une condition fournie:


    Female
    Male

Si le contenu de la variableteacher.genderv est égal à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 clauseif-else  présente dans la plupart des langages de programmation.

3.3. Commutateur - cas

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


    NO COURSES YET!
    
    

En fonction de la taille de la slistteacher.courses, 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 de Thymeleaf et présenté quelques exemples simplifiés illustrant les différentes options.

Les exemples peuvent être trouvés dans lesGitHub project.