gpt4 book ai didi

spring-boot - 如何在 Thymeleaf 中创建动态表 ..?

转载 作者:行者123 更新时间:2023-12-05 02:12:03 24 4
gpt4 key购买 nike

我是 Thymeleaf 的新手,正在尝试在 Themeleaf 模板上创建一个动态表。

我该怎么做...?

我一直在谷歌搜索我没有得到任何正确的答案。问题是我无法迭代 List< Map< String,Object >>。我可以有任意数量的列,列名可以是任何东西。

<tr class="headings">
<th class="column-title">ID</th>
<th class="column-title">Name</th>
<th class="column-title">Salary</th>
<th class="column-title">Status</th>
</tr>
</thead>
<tbody>
<tr class="even pointer" th:each="row:${rows}" id = "tablerow">
<td class=" " th:text="${row.getId()}">Id</td>
<td class=" " th:text="${row.getName()}">Name</td>
<td class=" " th:utext="${row.getSalary()}">Salary</td>
<td class=" " th:text="${row.getStatus()}">Active</td>
</tr>
</tbody>

我需要动态设置值,因为查询结果会不断变化。现在列名是硬编码的,值也是通过 row.getId 获取的,如果没有 ID,它可能是行中的任何内容,我应该使用什么而不是..?示例行.<>。行作为 List< Map< String, Object>> 获得。

提前致谢。

最佳答案

您可以像遍历 List 一样轻松地遍历 Map。最简单的形式是:

<tbody>
<tr class="even pointer" th:each="row: ${rows}" id="tablerow">
<td th:each="field: ${row}" th:text="${field.value}" />
</tr>
</tbody>

但是,由于 Maps 没有特定的顺序(除非您使用的是 TreeMap 之类的东西),所以我会这样做这个(完整的例子应该匹配你的例子表):

Controller

List<String> headers = Arrays.asList("ID", "Name", "Salary", "Status");
List<Map<String, Object>> rows = new ArrayList<>();
rows.add(Map.of("ID", "1", "Name", "Jim", "Salary", "50000", "Status", "active"));
rows.add(Map.of("ID", "2", "Name", "Sally", "Salary", "50000", "Status", "inactive"));

模板

<table>
<thead>
<tr class="headings">
<th th:each="header: ${headers}" class="column-title" th:text="${header}" />
</tr>
</thead>

<tbody>
<tr class="even pointer" th:each="row: ${rows}" id="tablerow">
<td th:each="header: ${headers}" th:text="${row.get(header)}" />
</tr>
</tbody>
</table>

将产生:

<table>
<thead>
<tr class="headings">
<th class="column-title" >ID</th>
<th class="column-title" >Name</th>
<th class="column-title" >Salary</th>
<th class="column-title" >Status</th>
</tr>
</thead>

<tbody>
<tr class="even pointer" id="tablerow">
<td >1</td>
<td >Jim</td>
<td >50000</td>
<td >active</td>
</tr>
<tr class="even pointer" id="tablerow">
<td >2</td>
<td >Sally</td>
<td >50000</td>
<td >inactive</td>
</tr>
</tbody>
</table>

关于spring-boot - 如何在 Thymeleaf 中创建动态表 ..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56579934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com