Travailler avec Boolean dans Thymeleaf
1. introduction
Dans ce tutoriel rapide, nous allons voir comment travailler avec des valeurs booléennes dans Thymeleaf.
Avant de plonger dans les détails, les bases de Thymeleaf se trouvent dansthis write-up.
2. Evaluation des expressions en tant que booléens
In Thymeleaf, any value can be evaluated to a boolean. Nous avons quelques valeurs interprétées commefalse:
-
null
-
la valeur booléennefalse
-
le nombre0
-
le caractère _0_
-
les chaînes“false”,“off”and“no”
Toute autre valeur est évaluée àtrue.
3. Utilisation de booléens comme conditions de rendu
Pour rendre un élément HTML conditionnellement, nous avons deux options: leth:if able les attributsth:unless .
Leur effet est exactement le contraire - Thymeleaf ne rendra un élément avec un attributth:if que si la valeur de l’attribut esttrue able avecth: sauf attribut uniquement si sa valeur estfalse:
will be rendered
won't be rendered
won't be rendered
will be rendered
4. Opérateurs logiques et conditionnels
De plus, nous pouvons utiliser les trois opérateurs logiques classiques dans Thymeleaf:
-
and
-
or
-
négation avec le mot-clénot ou le "!" symbole
Nous pouvons utiliser ces opérateurs dans des expressions variables ou en combinant plusieurs expressions variables avec eux:
The weather is bad
The weather is bad
The weather is good
The weather is good
It's warm
It's warm
It's warm
It's warm
On peut aussi utiliser des opérateurs conditionnels: lesif-then,if-then-else et les opérateurs par défaut.
L'opérateurif-then-else est l'opérateur ternaire habituel, ou?: opérateur:
It's
De plus, l'opérateurif-then est la version simplifiée où nous n'avons pas d'autre partie:
L'opérateur par défaut renvoie le premier opérande s'il n'est pasnull able le second sinon:
L'opérateur par défaut s'appelle également l'opérateur Elvis en raison de sa forte ressemblance avec la coiffure d'Elvis.
Notez que l’opérateur Elvis ne fait qu’un schémanull , il n’évalue pas le premier opérande comme booléen.
5. Objet#bools Utility
Le#bools est un objet utilitaire qui est disponible dans les expressions par défaut et a quelques méthodes pratiques:
-
#bools.isTrue(obj) renvoie si l'argument est évalué àtrue
-
#bools.isFalse(obj) renvoie si l'argument est évalué àfalse
-
#bools.xxxIsTrue(collection) convertit les éléments de l'argument en booléens avec#bools.isTrue() puis les récupère dans le même type de collection
-
#bools.xxxIsFalse(collection) convertit les éléments de l'argument en booléens avec#bools.isFalse() puis les récupère dans le même type de collection
-
#bools.xxxAnd(collection) renvoietrue si tous les éléments de l'argument sont évalués àtrue
-
#bools.xxxOr(collection) renvoietrue si un élément de l'argument est évalué àtrue
Dans les méthodes ci-dessus,xxx can soitarray,list ouset, selon l'argument de la méthode (et la valeur de retour dans le cas dexxxIsTrue() andxxxIsFalse() ).
6. Conclusion
Dans cet article, nous avons vu comment Thymeleaf interprète les valeurs comme des booléens, ainsi que comment nous pouvons rendre des éléments de manière conditionnelle et travailler avec des expressions booléennes.
Comme d'habitude, le code (avec plus d'exemples) est disponibleover on Github.