Thymeleaf th:if和th:unless的用法(附带实例)
Thymeleaf 中使用 th:if 和 th:unless 属性进行条件判断:
th:if 和 th:unless 表达式的结果支持 boolean、number、character、string 及其他类型。
下面通过例子演示 Thymeleaf 中如何使用 th:if 和 th:unless 属性进行条件判断。
1) 定义 HTML 页面。在 templates 目录下创建 if.html 页面,示例代码如下:
2) 定义后端接口,返回数据结果:
3) 启动验证。启动项目后,在浏览器中输入地址 http://localhost:8080/if,会出现如下图所示的结果。

图 1 if.html 页面显示效果
由图 1 可知,后端返回的 flag 值为 yes,th:if="${flag == 'yes'}" 条件成立,所以显示 a.home 的链接。而 th:unless="${flag != 'no'}" 条件也成立,所以隐藏 b.home 的链接。
- 在标签中使用 th:if 属性判断表达式是否成立,成立则显示该标签的内容,不成立则隐藏该标签的内容;
- th:unless 与 th:if 恰好相反,只有表达式中的条件不成立才会显示其内容。
th:if 和 th:unless 表达式的结果支持 boolean、number、character、string 及其他类型。
下面通过例子演示 Thymeleaf 中如何使用 th:if 和 th:unless 属性进行条件判断。
1) 定义 HTML 页面。在 templates 目录下创建 if.html 页面,示例代码如下:
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head lang="en"> <meta charset="UTF-8" /> <title></title> </head> <body> <h1>Thymeleaf模板引擎</h1> <h3>条件判断</h3> <a th:if="${flag == 'yes'}" th:href="@{http://www.a.com/}">a.home</a> <a th:unless="${flag != 'no'}" th:href="@{http://www.b.com/}" >b.home</a> </body> </html>在上面的例子中,通过 th:if 标签进行条件判断,如果 flag==yes,就显示 a.home 的链接,否则显示 b.home 的链接。
2) 定义后端接口,返回数据结果:
@RequestMapping("/if") public String ifunless(ModelMap map) { map.addAttribute("flag", "yes"); return "if"; }在上面的示例中,定义请求的地址,返回 if.html 页面,并返回 flag 的值为 yes。
3) 启动验证。启动项目后,在浏览器中输入地址 http://localhost:8080/if,会出现如下图所示的结果。

图 1 if.html 页面显示效果
由图 1 可知,后端返回的 flag 值为 yes,th:if="${flag == 'yes'}" 条件成立,所以显示 a.home 的链接。而 th:unless="${flag != 'no'}" 条件也成立,所以隐藏 b.home 的链接。