Thymeleaf:检查是否定义了变量

时间:2015-02-28 15:29:56

标签: java spring spring-mvc spring-boot thymeleaf

如何检查 Thymeleaf 中是否定义了变量

Javascript中有这样的东西:

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

或这在PHP中:

if (isset($var)) { }

Thymeleaf中是否有相同的物质?

4 个答案:

答案 0 :(得分:50)

是的,您可以使用以下代码轻松检查文档是否存在给定属性。请注意,如果符合条件,您将创建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存在

您可以在百里香[{3}}

中了解有关条件的更多信息

答案 1 :(得分:9)

简短形式:

<div th:if="${currentUser}">
    <h3>Name:</h3><h3 th:text="${currentUser.id}"></h3>
    <h3>Name:</h3><h3 th:text="${currentUser.username}"></h3>
</div>

答案 2 :(得分:5)

为了判断上下文是否包含给定变量,您可以直接询问上下文变量map。这使得人们可以确定是否完全指定了变量,而不是仅定义变量但是值为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>

答案 3 :(得分:0)

您可以使用条件运算符。这将写入变量,如果存在或为空字符串:

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