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?
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
Kurzform:
<div th:if="${currentUser}">
<h3>Name:</h3><h3 th:text="${currentUser.id}"></h3>
<h3>Name:</h3><h3 th:text="${currentUser.username}"></h3>
</div>
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.
Verwenden Sie die Methode #vars
object containsKey
:
<div th:if="${#vars.containsKey('myVariable')}" th:text="Yes, $myVariable exists!"></div>
Verwenden Sie die Methode #ctx
object containsVariable
:
<div th:if="${#ctx.containsVariable('myVariable')}" th:text="Yes, $myVariable exists!"></div>
Sie können bedingte Operatoren verwenden. Dadurch wird eine Variable geschrieben, wenn eine leere Zeichenfolge vorhanden ist:
<p th:text="${variable}?:''"></p>