Conditionals in Thymeleaf

1. Overzicht

In deze tutorial gaan we kijken naar de verschillende soorten conditionals beschikbaar in Thymeleaf.

Raadpleeg dit artikel voor een korte inleiding tot Thymeleaf.

2. Maven afhankelijkheden

Laten we beginnen met de Maven-afhankelijkheden die nodig zijn om Thymeleaf samen met Spring te gebruiken:

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

Voor andere voorjaarsreleases is de matching thymeleaf-springX bibliotheek moet worden gebruikt, waar X staat voor Spring version. Houd er ook rekening mee dat Spring 5 wordt ondersteund vanaf 3.0.8 VRIJGAVE, door Thymeleaf.

De laatste versies van vereiste afhankelijkheden zijn hier te vinden.

3. Thymeleaf-voorwaarden

We moeten onderscheid maken tussen voorwaarden die ons in staat stellen om tekst binnen een HTML-element weer te geven, afhankelijk van een voorwaarde, en voorwaarden die de instantiatie van een HTML-element zelf bepalen.

Laten we onze definiëren Leraar modelklasse die we in dit artikel zullen gebruiken:

openbare klas Docent implementeert Serializable {privé String geslacht; private boolean isActive; privélijstcursussen = nieuwe ArrayList (); private String additionele vaardigheden;

3.1. Elvis-operator

De Elvis-operator ?: laat ons tekst binnen een HTML-element renderen, afhankelijk van de huidige status van een variabele.

We kunnen standaarduitdrukkingen gebruiken om een ​​standaardtekst op te geven als dat een variabele is nul:

In het bovenste voorbeeld willen we de inhoud van het leraar. aanvullende vaardighedenvariabele als deze is gedefinieerd en we willen de tekst “ONBEKEND”Anders worden weergegeven.

Het is ook mogelijk om willekeurige tekst weer te geven, afhankelijk van een booleaanse uitdrukking:

We kunnen een eenvoudige booleaanse variabele opvragen zoals in het vorige voorbeeld, maar stringvergelijkingen en bereikcontroles zijn ook mogelijk.

De volgende vergelijkers en hun tekstuele weergaven worden ondersteund> (gt),> = (ge), <(lt), <= (le), == (eq) en! = (ne).

3.2. Als - Tenzij

De th: als en th: tenzij attributen stellen ons in staat om een ​​HTML-element weer te geven, afhankelijk van een opgegeven voorwaarde:

 Vrouwelijk mannelijk 

Als de inhoud van het leraar.gender variabele is gelijk aan een F, dan het span-element met de waarde 'Vrouw”Wordt weergegeven.

Anders wordt het element met 'Mannetje”Wordt weergegeven. Zo'n opstelling is vergelijkbaar met een als-anders clausule aanwezig in de meeste programmeertalen.

3.3. Schakelaar - Case

Als er meer dan twee mogelijke resultaten zijn van een uitdrukking, kunnen we de th: schakelaar en th: case attributen voor de voorwaardelijke weergave van de HTML-elementen:

 NOG GEEN CURSUSSEN! 

Afhankelijk van de grootte van deleraar. cursussenlijst tonen we ofwel een standaardtekst, de enkele cursus of alle beschikbare cursussen. Het sterretje (*)wordt gebruikt voor de standaardoptie.

4. Conclusie

In dit korte artikel hebben we de verschillende soorten Thymeleaf-conditionals onderzocht en enkele vereenvoudigde voorbeelden gepresenteerd van de verschillende opties.

De voorbeelden zijn te vinden in het GitHub-project.