java - tutorial - Thymeleaf: comprueba si se define una variable
thymeleaf vs jsp (3)
Sí, puede verificar fácilmente si existe una propiedad dada para su documento usando el siguiente código. Tenga en cuenta que está creando una etiqueta div
si se cumple la condición:
<div th:if="${variable != null}" th:text="Yes, variable exists!">I wonder, if variable exists...</div>
Si quieres usar el campo de la variable
, vale la pena verificar si este campo también existe
<div th:if="${variable != null && variable.name != null}" th:text="${variable.name}">I wonder, if variable.name exists...</div>
O incluso más corto, sin usar if
<div th:text="${variable?.name}">I wonder, if variable.name exists...</div>
Pero al usar esta declaración, terminará creando una etiqueta div
si la variable
o variable.name
existen
Puede obtener más información sobre los condicionales en hoja de tomillo aquí
¿Cómo puedo verificar si una variable está definida en Thymeleaf ?
Algo como esto en Javascript:
if (typeof variable !== ''undefined'') { }
o esto en PHP:
if (isset($var)) { }
¿Hay un equivalente en Thymeleaf?
Forma corta:
<div th:if="${currentUser}">
<h3>Name:</h3><h3 th:text="${currentUser.id}"></h3>
<h3>Name:</h3><h3 th:text="${currentUser.username}"></h3>
</div>
Para saber si el contexto contiene una variable determinada, puede preguntar el mapa de variables de contexto directamente. Esto le permite a uno determinar si la variable se especifica en absoluto, a diferencia de los únicos casos en los que está definida, pero con un valor de nulo.
Thymeleaf 2
Use el método containsKey
del objeto #vars
:
<div th:if="${#vars.containsKey(''myVariable'')}" th:text="Yes, $myVariable exists!"></div>
Thymeleaf 3
Use el método containsVariable
del objeto #ctx
:
<div th:if="${#ctx.containsVariable(''myVariable'')}" th:text="Yes, $myVariable exists!"></div>