Spring中Thymeleaf模板th:if(误用th:info)条件判断失效求助
解决Thymeleaf条件判断失效的问题
嘿,我一眼就揪出问题所在啦!你踩了个超容易犯的小坑——把Thymeleaf的条件判断属性写错了!
- 你用了
th:info="${info} == '2000'",但Thymeleaf里根本没有th:info这个属性,正确的条件判断属性应该是th:if(满足条件时渲染内容)或者th:unless(不满足条件时渲染)。这就是为啥加了这个属性后页面没效果,Thymeleaf完全识别不了这个无效指令呀!
正确的写法示例
首先要确认你的YearOfProduction数据类型,对应不同的判断写法:
- 如果是字符串类型,判断值要加单引号:
<!-- 假设info是单个车辆对象,仅当年份为"2000"时渲染该内容 --> <p th:if="${info.YearOfProduction} == '2000'" th:text="${info.YearOfProduction}"></p>
- 如果是数字类型(比如Integer、int),判断值不要加引号:
<p th:if="${info.YearOfProduction} == 2000" th:text="${info.YearOfProduction}"></p>
额外注意点
- 确保你的控制器中,
info对象的YearOfProduction属性有对应的getYearOfProduction()getter方法,Thymeleaf是通过getter来访问对象属性的哦。 - 如果是遍历车辆列表进行筛选,写法应该是这样:
<div th:each="car : ${carList}"> <!-- 只显示生产年份为2000的车辆信息 --> <div th:if="${car.YearOfProduction} == 2000"> <p>生产年份:<span th:text="${car.YearOfProduction}"></span></p> <!-- 其他车辆属性渲染 --> </div> </div>
把th:info改成th:if,再根据数据类型调整判断值的写法,应该就能正常显示你想要的内容啦!
内容的提问来源于stack exchange,提问作者Pablito
相关产品推荐
相关产品推荐

