Тимелеаф: проверьте, определена ли переменная
Как проверить, определена ли переменная в Thymeleaf?
Что-то вроде этого в Javascript:
if (typeof variable !== 'undefined') { }
или это в PHP:
if (isset($var)) { }
Существует ли эквивалент в тимелеафе?
Ответы
Ответ 1
Да, вы можете легко проверить, существует ли данное свойство для вашего документа, используя следующий код. Обратите внимание, что вы создаете тег div
если выполняется условие:
<div th:if="${variable != null}" th:text="Yes, variable exists!">
I wonder, if variable exists...
</div>
Если вы хотите использовать variable
поле, стоит проверить, существует ли это поле также
<div th:if="${variable != null && variable.name != null}" th:text="${variable.name}">
I wonder, if variable.name exists...
</div>
Или даже короче, без использования оператора if
<div th:text="${variable?.name}">
I wonder, if variable.name exists...
</div>'
Но с помощью этого оператора вы закончите создание тега div
независимо от того, существует ли variable
или variable.name
Вы можете узнать больше об условиях в тимелист здесь
Ответ 2
Краткая форма:
<div th:if="${currentUser}">
<h3>Name:</h3><h3 th:text="${currentUser.id}"></h3>
<h3>Name:</h3><h3 th:text="${currentUser.username}"></h3>
</div>
Ответ 3
Чтобы определить, содержит ли контекст заданную переменную, вы можете напрямую запросить карту переменных контекста. Это позволяет определить, указана ли переменная вообще, в отличие от тех случаев, когда она определена, но со значением null.
Thymeleaf 2
Используйте #vars
объект containsKey
метод:
<div th:if="${#vars.containsKey('myVariable')}" th:text="Yes, $myVariable exists!"></div>
Thymeleaf 3
Используйте объект #ctx
containsVariable
:
<div th:if="${#ctx.containsVariable('myVariable')}" th:text="Yes, $myVariable exists!"></div>
Ответ 4
Вы можете использовать условные операторы. Это напишет переменную, если существует, или пустую строку:
<p th:text="${variable}?:''"></p>