html - Thymeleaf 多重条件,改变背景颜色
问题描述
accountDTO.state 和 accountDTO.accountDTO 列中的表格单元格应根据 accountDTO.state 的文本值更改背景颜色。我试过这个:
Thymeleaf - 如何根据互斥条件应用两种(或更多)样式
而且我已经搜索了更多解决方案,但是每个人都使用条件来表示两个可能的值,或者在上面的 URL 中有多个条件。我只有一个条件,但我在该字段上有 9 个可能的值。用户在不同的网页中为该字段选择一个值。在此页面上,显示了来自数据库的列表。
现在我尝试在 td 标记内使用 th:switch 语句,但是我需要在 td 内添加 span 或 div,但在这种情况下它不起作用,单元格没有着色。我已经搜索过 if/else/if 结构或 elif 之类的东西,但似乎没有。而且我不能在单个标签中重复 th:if。我希望我可以使用 th:switch 但是,为什么它不起作用?
下面只是一个较短的版本切换,只是这个例子的一些案例,但我总共需要九个案例。
<tbody>
<tr th:each = "accountDTO : ${listOfAccounts}">
<td th:text = "${accountDTO.accountDTO}"></td>
<td th:text = "${accountDTO.startBalance}"></td>
<td th:text = "${accountDTO.currentBalance}"></td>
<td th:text = "${accountDTO.state}" th:switch = "${accountDTO.state}"
><span th:case = "${accountDTO.state} == 'OUT_OF_USE'" th:appendstyle = "'background: red'"></span>
<span th:case = "${accountDTO.state} == 'DEVICE'" th:appendstyle = "'background: green'"></span>
<span th:case = "${accountDTO.state} == 'LOCKED'" th:appendstyle = "'background: blue'"></span>
</td>
<td th:text = "${accountDTO.employee.employeeName}"></td>
<td><a th:href = "@{/editAccount/{id}(id=${accountDTO.idAccount})}" class="btn btn-primary btn-lg" id = "eBtn" th:data = "${accountDTO.idAccount}">Edit</a></td>
</tr>
</tbody>
解决方案
考虑使用变量作为类来简化 Thymeleaf 和 HTML。然后你可以设置与你的 CSS 一致的格式。您的 HTML 看起来像这样:
<tbody>
<tr th:each = "accountDTO : ${listOfAccounts}">
<td th:text = "${accountDTO.accountDTO}"></td>
<td th:text = "${accountDTO.startBalance}"></td>
<td th:text = "${accountDTO.currentBalance}"></td>
<td th:text = "${accountDTO.state}" th:classappend = "${accountDTO.state}"></td>
<td th:text = "${accountDTO.employee.employeeName}"></td>
<td><a th:href = "@{/editAccount/{id}(id=${accountDTO.idAccount})}" class="btn btn-primary btn-lg" id = "eBtn" th:data = "${accountDTO.idAccount}">Edit</a></td>
<tr>
</tbody>
然后在你的 CSS 中查看类似这样的内容:
td.OUT_OF_USE {
background: red;
}
td.DEVICE {
background: green;
}
td.LOCKED {
background: blue;
}
可能有助于使类似的输出在单独的页面上保持一致。
推荐阅读
- python - 如果仅匹配第一个唯一值,则 Pandas 比较两列并复制另一列的值
- python - 如何使用 numpy 将数组拆分为具有不同维度的子数组?
- reinforcement-learning - Q-learning 在倒立摆上的收敛性
- java - 如何在 Java 中实现树形格式?
- python-3.x - Python Pandas:如何遍历具有公共列值的行
- java - 创建 MethodNode 失败并出现 IllegalStateException
- c - 想用 fabs 和我自己的绝对值函数求绝对值
- vue.js - vue + selected-js:无法使用 selected-sprite.png 导入 selected-js 的 css
- dart - Flutter/Dart 数字处理能力
- python - SQLAlchemy 中带有选定列的 BETWEEN 子句