Trabalhando com booleano no Thymeleaf

Trabalhando com booleano no Thymeleaf

1. Introdução

Neste tutorial rápido, veremos como trabalhar com valores booleanos no Thymeleaf.

Antes de mergulharmos nos detalhes, o básico do Thymeleaf pode ser encontrado emthis write-up.

2. Avaliando expressões como booleanos

In Thymeleaf, any value can be evaluated to a boolean.  Temos alguns valores interpretados comofalse:

  • null

  • o valor booleanofalse

  • o número0

  • o personagem _0_

  • as cordas“false”,“off”areia“no”

Qualquer outro valor é avaliado emtrue.

3. Usando booleanos como condições de renderização

Para renderizar um elemento HTML condicionalmente, temos duas opções:th:if eth:unless attributes.

Seu efeito é exatamente o oposto - Thymeleaf renderizará um elemento com umth:if attribute apenas se o valor do atributo fortrue areia comth: a menos que o atributo apenas se seu valor forfalse:

will be rendered
won't be rendered
won't be rendered
will be rendered

4. Operadores lógicos e condicionais

Além disso, podemos usar os três operadores lógicos clássicos no Thymeleaf:

  • and

  • or

  • negação com a palavra-chavenot entre o “!” símbolo

Podemos usar esses operadores dentro de expressões variáveis ​​ou combinar várias expressões variáveis ​​com eles:

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

Também podemos usar operadores condicionais:if-then,if-then-else e os operadores padrão.

O operadorif-then-else é o ternário usual, ou?: operador:

It's 

Além disso, o operadorif-then é a versão simplificada onde não temos outra parte:

O operador padrão retorna o primeiro operando se não fornull e o segundo caso contrário:

 
 
 
 

O operador padrão também é chamado de operador Elvis devido à sua forte semelhança com o penteado de Elvis.

Observe que o operador Elvis faz apenas umnull check, ele não avalia o primeiro operando como booleano.

5. #bools Utility Object

O#bools  é um objeto utilitário que está disponível em expressões por padrão e tem alguns métodos úteis:

  • #bools.isTrue(obj) retorna se o argumento foi avaliado paratrue

  • #bools.isFalse(obj) retorna se o argumento foi avaliado parafalse

  • #bools.xxxIsTrue(collection) converte os elementos do argumento para booleanos com#bools.isTrue() e os coleta para o mesmo tipo de coleção

  • #bools.xxxIsFalse(collection) converte os elementos do argumento para booleanos com#bools.isFalse() e os coleta para o mesmo tipo de coleção

  • #bools.xxxAnd(collection) retornatrue se todos os elementos no argumento forem avaliados paratrue

  • #bools.xxxOr(collection) retornatrue  se qualquer elemento no argumento for avaliado paratrue

Nos métodos acima,xxx can pode serarray,list orset, dependendo do argumento do método (e valor de retorno no caso dexxxIsTrue() andxxxIsFalse() )

6. Conclusão

Neste artigo, vimos como o Thymeleaf interpreta valores como booleanos, também como podemos renderizar elementos condicionalmente e trabalhar com expressões booleanas.

Como de costume, o código (com mais exemplos) está disponívelover on Github.