You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring中Thymeleaf模板th:if(误用th:info)条件判断失效求助

解决Thymeleaf条件判断失效的问题

嘿,我一眼就揪出问题所在啦!你踩了个超容易犯的小坑——把Thymeleaf的条件判断属性写错了!

  • 你用了th:info="${info} == '2000'",但Thymeleaf里根本没有th:info这个属性,正确的条件判断属性应该是th:if(满足条件时渲染内容)或者th:unless(不满足条件时渲染)。这就是为啥加了这个属性后页面没效果,Thymeleaf完全识别不了这个无效指令呀!

正确的写法示例

首先要确认你的YearOfProduction数据类型,对应不同的判断写法:

  1. 如果是字符串类型,判断值要加单引号:
<!-- 假设info是单个车辆对象,仅当年份为"2000"时渲染该内容 -->
<p th:if="${info.YearOfProduction} == '2000'" th:text="${info.YearOfProduction}"></p>
  1. 如果是数字类型(比如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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:44:28