web-dev-qa-db-fra.com

Thymeleaf: vérifie si une variable est définie

Comment puis-je vérifier si une variable est définie dans Thymeleaf ?

Quelque chose comme ça en Javascript:

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

ou ceci en PHP:

if (isset($var)) { }

Existe-t-il un équivalent dans Thymeleaf?

20
Andrea

Oui, vous pouvez facilement vérifier si une propriété donnée existe pour votre document en utilisant le code suivant. Notez que vous créez la balise div si la condition est remplie:

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

Si vous voulez utiliser le champ variable, vérifiez si ce champ existe aussi

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

Ou même plus court, sans utiliser si déclaration

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

Mais en utilisant cette instruction, vous finirez par créer la balise div que variable ou variable.name existe

Vous pouvez en apprendre plus sur les conditionnels dans thymeleaf ici

45
Trynkiewicz Mariusz

Forme courte:

<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

Pour savoir si le contexte contient une variable donnée, vous pouvez demander directement à la carte de variable de contexte. Cela permet de déterminer si la variable est spécifiée, par opposition aux seuls cas où elle est définie mais avec une valeur null.

Thymeleaf 2

Utilisez la méthode #vars object's containsKey :

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

Thymeleaf 3

Utilisez la méthode #ctx object's containsVariable :

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

Vous pouvez utiliser des opérateurs conditionnels. Ceci écrira une variable s'il existe ou une chaîne vide:

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