Mit Boolean in Thymeleaf arbeiten

Arbeiten mit Boolean in Thymeleaf

1. Einführung

In diesem kurzen Tutorial werden wir uns ansehen, wie man mit booleschen Werten in Thymeleaf arbeitet.

Bevor wir uns mit den Details befassen, finden Sie die Thymeleaf-Grundlagen inthis write-up.

2. Ausdrücke als Boolesche Werte auswerten

In Thymeleaf, any value can be evaluated to a boolean. Wir haben einige Werte alsfalse: interpretiert

  • null

  • der Boolesche Wertfalse

  • die Zahl0

  • das Zeichen _0_

  • die Saiten“false”,“off”and“no”

Jeder andere Wert wird mittrue bewertet.

3. Verwenden von Booleschen Werten als Wiedergabebedingungen

Um ein HTML-Element bedingt zu rendern, haben wir zwei Möglichkeiten:th:if undth:unless .

Ihre Wirkung ist genau umgekehrt - Thymeleaf rendert ein Element mit einemth:if -Sattribut nur, wenn der Wert des Attributstrue ist, und Sand mitth: es sei denn, das Attribut ist nur, wenn sein Wertfalse: ist

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

4. Logische und bedingte Operatoren

Zusätzlich können wir die drei klassischen Logikoperatoren in Thymeleaf verwenden:

  • and

  • or

  • Negation mit dem Schlüsselwortnot oder dem "!" Symbol

Wir können diese Operatoren in variablen Ausdrücken verwenden oder mehrere variable Ausdrücke mit ihnen kombinieren:

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

Wir können auch bedingte Operatoren verwenden:if-then,if-then-else und die Standardoperatoren.

Derif-then-else -Soperator ist der übliche ternäre Operator oder?: Operator:

It's 

Darüber hinaus ist derif-then -Soperator die vereinfachte Version, in der wir keinen anderen Teil haben:

Der Standardoperator gibt den ersten Operanden zurück, wenn er nichtnull ist, andernfalls den zweiten.

 
 
 
 

Der Standardoperator wird aufgrund seiner starken Ähnlichkeit mit der Frisur von Elvis auch als Elvis-Operator bezeichnet.

Beachten Sie, dass der Elvis-Operator nur einennull -Scheck ausführt und den ersten Operanden nicht als boolesch bewertet.

5. #bools Utility-Objekt

#bools ist ein Dienstprogrammobjekt, das standardmäßig in Ausdrücken verfügbar ist und einige nützliche Methoden hat:

  • #bools.isTrue(obj) gibt zurück, ob das Argument zutrue ausgewertet wird

  • #bools.isFalse(obj) gibt zurück, ob das Argument zufalse ausgewertet wird

  • #bools.xxxIsTrue(collection) wandelt die Elemente des Arguments in Boolesche Werte um, wobei#bools.isTrue() then sie für denselben Sammlungstyp sammelt

  • #bools.xxxIsFalse(collection) wandelt die Elemente des Arguments in Boolesche Werte um, wobei#bools.isFalse() then sie für denselben Sammlungstyp sammelt

  • #bools.xxxAnd(collection) gibttrue zurück, wenn alle Elemente im Argument zutrue ausgewertet werden

  • #bools.xxxOr(collection) gibttrue zurück, wenn ein Element im Argument zutrue ausgewertet wird

Bei den Methoden überxxx ist der Scan entwederarray,list oderset, abhängig vom Argument der Methode (und dem Rückgabewert beixxxIsTrue() andxxxIsFalse() ).

6. Fazit

In diesem Artikel haben wir gesehen, wie Thymeleaf Werte als Boolesche Werte interpretiert und wie wir Elemente bedingt rendern und mit booleschen Ausdrücken arbeiten können.

Wie üblich ist der Code (mit weiteren Beispielen)over on Github verfügbar.