Bedingungen in Thymeleaf

1. Übersicht

In diesem Tutorial werden wir uns die verschiedenen Arten von Bedingungen ansehen, die in Thymeleaf verfügbar sind .

Eine kurze Einführung in Thymeleaf finden Sie in diesem Artikel.

2. Maven-Abhängigkeiten

Beginnen wir mit den Maven-Abhängigkeiten, die erforderlich sind, um Thymeleaf zusammen mit Spring zu verwenden:

 org.thymeleaf thymeleaf 3.0.11.RELEASE   org.thymeleaf thymeleaf-spring5 3.0.11.RELEASE 

Für andere Spring-Versionen sollte die passende Thymeleaf-SpringX- Bibliothek verwendet werden, wobei X für die Spring-Version steht. Bitte beachten Sie auch, dass Spring 5 ab 3.0.8.RELEASE von Thymeleaf unterstützt wird.

Die neuesten Versionen der erforderlichen Abhängigkeiten finden Sie hier.

3. Thymeleaf-Bedingungen

Wir müssen zwischen Bedingungen unterscheiden, die es uns ermöglichen, Text in einem HTML-Element abhängig von einer Bedingung zu rendern, und solchen, die die Instanziierung eines HTML-Elements selbst steuern.

Definieren wir unsere Lehrermodellklasse , die wir in diesem Artikel verwenden werden:

public class Teacher implements Serializable { private String gender; private boolean isActive; private List courses = new ArrayList(); private String additionalSkills;

3.1. Elvis-Betreiber

Mit dem Elvis-Operator ?: Können wir Text in einem HTML-Element abhängig vom aktuellen Status einer Variablen rendern.

Wir können Standardausdrücke verwenden, um einen Standardtext bereitzustellen, wenn eine Variable null ist :

Im oberen Beispiel möchten wir den Inhalt der Variablen Teacher.additionalSkills anzeigen , wenn sie definiert ist, und den Text " UNBEKANNT " anderweitig rendern .

Es ist auch möglich, beliebigen Text abhängig von einem booleschen Ausdruck anzuzeigen:

Wir können eine einfache boolesche Variable wie im vorherigen Beispiel abfragen, aber auch Zeichenfolgenvergleiche und Bereichsprüfungen sind möglich.

Die folgenden Komparatoren und ihre Textdarstellungen werden unterstützt > (gt),> = (ge), <(lt), <= (le), == (eq) und! = (Ne) .

3.2. Wenn - es sei denn

Die Attribute th: if und th: es sei denn , wir können ein HTML-Element abhängig von einer bereitgestellten Bedingung rendern:

 Female Male 

Wenn der Inhalt der Variable Teacher.gender gleich einem F ist, wird das span-Element mit dem Wert „ Female “ gerendert.

Andernfalls wird das Element mit „ Männlich “ gerendert. Ein solches Setup ist vergleichbar mit einer if-else- Klausel, die in den meisten Programmiersprachen vorhanden ist.

3.3. Schaltergehäuse

Wenn es mehr als zwei mögliche Ergebnisse eines Ausdrucks gibt, können wir die Attribute th: switch und th: case für das bedingte Rendern der HTML-Elemente verwenden:

 NO COURSES YET! 

Abhängig von der Größe der Liste der Lehrer.Kurse wird entweder ein Standardtext, der einzelne Kurs oder alle verfügbaren Kurse angezeigt. Das Sternchen (*) wird für die Standardoption verwendet.

4. Fazit

In diesem kurzen Artikel haben wir die verschiedenen Arten von Thymeleaf-Bedingungen untersucht und einige vereinfachte Beispiele vorgestellt, die die verschiedenen Optionen zeigen.

Die Beispiele finden Sie im GitHub-Projekt.