Thymeleaf:检查是否定义了变量

Thymeleaf: check if a variable is defined

如何检查是否在 Thymeleaf 中定义了

Javascript 中的类似内容:

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

或 PHP 中的这个:

if (isset($var)) { }

Thymeleaf 中是否有等效项?

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

但使用此语句,无论 variablevariable.name 是否存在

,您都将结束创建 div 标签

您可以在 thymeleaf 中了解有关条件的更多信息 here

缩写形式:

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

为了判断上下文是否包含给定的变量,可以直接询问上下文变量映射。这让人们可以确定是否完全指定了变量,而不是仅定义了变量但值为 null 的情况。

百里香叶 2

使用#vars object's containsKey方法:

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

百里香叶 3

使用#ctx object's containsVariable方法:

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

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

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