如何检查 Thymeleaf 中是否定义了变量?
Javascript中有这样的东西:
if (typeof variable !== 'undefined') { }
或这在PHP中:
if (isset($var)) { }
Thymeleaf中是否有相同的物质?
答案 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的情况。
使用#vars
对象的containsKey
方法:
<div th:if="${#vars.containsKey('myVariable')}" th:text="Yes, $myVariable exists!"></div>
使用#ctx
对象的containsVariable
方法:
<div th:if="${#ctx.containsVariable('myVariable')}" th:text="Yes, $myVariable exists!"></div>
答案 3 :(得分:0)
您可以使用条件运算符。这将写入变量,如果存在或为空字符串:
<p th:text="${variable}?:''"></p>