如何避免Thymeleaf中th:if条件判断生成空<div>标签
Thymeleaf 多余空div标签问题解决方案
问题成因:你当前使用普通<div>标签搭配th:if时,只要条件判定为真,Thymeleaf就会完整输出<div>标签本身和内部内容,若内部内容为空、或者你不需要这个额外的容器标签,就会出现残留空div的问题,进而影响布局。
你可以选择以下任意一种方案解决:
- 方案1:使用Thymeleaf专属的无渲染容器
th:blockth:block是Thymeleaf提供的逻辑容器,仅会执行内部的条件判断、内容渲染逻辑,本身不会在最终生成的HTML中留下任何实体标签,修改代码如下:
<th:block th:if="${user.admin}"> Welcome, Admin </th:block>
当用户是管理员时,只会输出Welcome, Admin文本,不会有任何外层标签;条件不满足时不会输出任何内容,完全不会产生多余标签。
- 方案2:保留div标签结构的前提下,添加
th:remove属性移除容器
如果你只是不想在条件成立时保留外层div标签,不需要修改标签类型,只需增加th:remove="tag"配置即可:
<div th:if="${user.admin}" th:remove="tag"> Welcome, Admin </div>
该配置会在条件成立时,只保留div内部的内容输出,自动移除div标签本身,同样不会产生多余的空标签。
内容的提问来源于stack exchange,提问作者sarath
相关产品推荐
相关产品推荐

