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

Thymeleaf中th:style按布尔值切换文本颜色失效求助

解决Thymeleaf根据布尔值切换文本颜色无效的问题

你的代码问题主要出在样式应用的标签选择上,同时可以优化表达式写法提升可读性:

问题根源

<tr>标签本身并不直接承载文本内容,浏览器会自动将<tr>内的文本包裹在匿名<td>中,导致你设置在<tr>上的color样式无法正确作用到文本上。此外,虽然getExpired()写法可行,但Spring EL更推荐直接使用属性名访问。

修复方案

  1. 将样式移到<td>标签中(表格文本的正确承载元素)
  2. 改用属性名${book.expired}替代${book.getExpired()}

修改后的完整代码:

<table th:each="book : ${assignedBooks}">
    <tr>
        <td th:style="${book.expired ? 'color: red;' : 'color: blue;'}" 
            th:text="${book.name + ', ' + book.author + ', ' + book.year}">someBook</td>
    </tr>
</table>

额外排查步骤

  • 查看页面渲染后的源码,确认<td>的style属性是否正确生成了color: red;或color: blue;:
    • 如果样式未生成,检查book对象的expired属性是否正确暴露(确保有对应的getter方法)
    • 如果样式已生成但颜色不生效,检查是否有全局CSS规则(比如带有!important的样式)覆盖了行内样式

内容的提问来源于stack exchange,提问作者elenwen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:52:01