Travailler avec Boolean dans Thymeleaf

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.