it-swarm.com.de

Thymeleaf: Prüfen Sie, ob eine Variable definiert ist

Wie kann ich überprüfen, ob eine Variable definiert ist in Thymeleaf ?

So etwas in Javascript:

if (typeof variable !== 'undefined') { }

oder das in PHP:

if (isset($var)) { }

Gibt es ein Äquivalent in Thymeleaf?

20
Andrea

Ja, Sie können leicht überprüfen, ob die angegebene Eigenschaft für Ihr Dokument vorhanden ist, indem Sie folgenden Code verwenden. Beachten Sie, dass Sie das div-Tag erstellen, wenn die Bedingung erfüllt ist:

<div th:if="${variable != null}" th:text="Yes, variable exists!">I wonder, if variable exists...</div>

Wenn Sie das Feld variable verwenden möchten, sollten Sie prüfen, ob auch dieses Feld vorhanden ist

<div th:if="${variable != null && variable.name != null}" th:text="${variable.name}">I wonder, if variable.name exists...</div>

Oder noch kürzer ohne if-Anweisung

<div th:text="${variable?.name}">I wonder, if variable.name exists...</div>

Mit dieser Anweisung beenden Sie jedoch die Erstellung eines div-Tags, unabhängig davon, ob variable oder variable.name vorhanden ist

Sie können mehr über Bedingungen in thymeleaf erfahren hier

45

Kurzform:

<div th:if="${currentUser}">
    <h3>Name:</h3><h3 th:text="${currentUser.id}"></h3>
    <h3>Name:</h3><h3 th:text="${currentUser.username}"></h3>
</div>
8
Lay Leangsros

Um festzustellen, ob der Kontext eine bestimmte Variable enthält, können Sie die Kontextvariablen direkt abfragen. Auf diese Weise lässt sich feststellen, ob die Variable überhaupt angegeben ist, im Gegensatz zu den Fällen, in denen sie definiert wurde, jedoch mit dem Wert null.

Thymeleaf 2

Verwenden Sie die Methode #vars object containsKey :

<div th:if="${#vars.containsKey('myVariable')}" th:text="Yes, $myVariable exists!"></div>

Thymeleaf 3

Verwenden Sie die Methode #ctx object containsVariable :

<div th:if="${#ctx.containsVariable('myVariable')}" th:text="Yes, $myVariable exists!"></div>
4

Sie können bedingte Operatoren verwenden. Dadurch wird eine Variable geschrieben, wenn eine leere Zeichenfolge vorhanden ist:

<p th:text="${variable}?:''"></p>
0