it-swarm.com.ru

Thymeleaf: проверить, определена ли переменная

Как я могу проверить, если переменная определена in Thymeleaf ?

Примерно так в Javascript:

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

или это в PHP:

if (isset($var)) { }

Есть ли эквивалент в Thymeleaf?

20
Andrea

Да, вы можете легко проверить, существует ли данное свойство для вашего документа, используя следующий код. Обратите внимание, что вы создаете тег 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

Вы можете узнать больше об условных обозначениях в чабреце здесь

45
Trynkiewicz Mariusz

Краткая форма:

<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

Чтобы определить, содержит ли контекст заданную переменную, вы можете напрямую запросить карту переменных контекста. Это позволяет определить, указана ли вообще переменная, в отличие от тех случаев, когда она определена, но со значением null.

Thymeleaf 2

Используйте #vars object's containsKey метод:

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

Thymeleaf 3

Используйте #ctx object's containsVariable метод:

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

Вы можете использовать условные операторы. Это напишет переменную, если существует, или пустую строку:

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