java - Thymeleaf - 基于对象属性值的条件渲染
问题描述
<tr th:each="student: ${students}">
<td th:text="${student.id}" />
<td th:text="${student.name}" />
</tr>
我有 10 个不同名字的学生。如果至少有 1 个学生的 student.name == "Felix",我只想渲染整个表格。否则我不想渲染表格。
我怎样才能做到这一点?
解决方案
在返回此模板的控制器中,检查 Java 中的列表。如果你找到 "Felix".equals(student.name) 然后在上下文中添加一个像 'isRenderTable' 这样的变量,并在 Thymeleaf 中的表上做一个条件,比如:
<table th:if="${isRenderTable}">...</table>
如果你不想接触服务器端代码,那么你可以使用 Thymeleaf 和 JavaScript。将学生列表渲染成JS,然后用JS进行你想要的逻辑比较,再通过JS渲染表格。
另一种方法是将学生列表渲染到 JS 中,并在 Thymeleaf 中渲染表格(并使用 CSS 隐藏表格),然后在 JS 中如果检测到适当的条件,更改 CSS 以显示表格。
推荐阅读
- ios - ionic3 Cordova 使用文件传输插件构建 ios 问题
- javascript - Adobe Acrobat javascript 循环擦除每第二个和第三个复选框
- monitoring - 为 Prometheus Target 配置 basic_auth
- javascript - 无法生成随机数组并使用它进行可视化VS Code 中的元素?
- flutter - 有没有办法在 pdf Dart 包的表格中使用 UrlLink?
- wpf - WPF 数据上下文。从另一个班级取
- postgresql - PostrgreSql 数据库写/读统计
- excel - 使用excel在Word文档中添加表格
- bootstrap-4 - Bootstrap4 手风琴不工作。请检查我的代码
- java - FreeMarker 模板错误:JSONArray 包装到 febStringModel