遍历 Thymeleaf 中的 List<Map<String, Object>> map
Iterating through a List<Map<String, Object>> map in Thymeleaf
我已经使用 Thymealeaf 在 Spring-MVC 中构建了一个应用程序,我想在 Thymealeaf 中的 table 中迭代数据库条目。
这是我正在迭代的对象:
List<Map<String, Object>> map
我在 Thymleaf 中试过这段代码:
<table>
<tr>
<td> CNP:</td>
<td th:text ="${raspuns.cif}" ></td>
</tr>
<tr>
<td> Nume:</td>
<td th:text ="${raspuns.den_client}" ></td>
</tr>
</table>
但它只显示 2 个条目,我知道它有 311 个或类似的条目。我如何遍历所有条目并将它们全部显示出来?
您应该首先 iterate through the list 然后遍历映射以访问键和值。
为了简化流程,建议将您的 List<Map<String,Object>>
转换为 Map<String, Object>
,如下所示:
Map<String, Object> result = map
.stream()
.collect(Collectors.toMap(s -> (String) s.get("key"),
s -> s.get("value")));
那么您可能想要遍历地图:
<table>
<tr>
<th> CNP:</th>
<th> Nume:</th>
</tr>
<tr each:="entry: ${map}">
<!-- You can access a {key, value} pair for each entry of the map -->
<td th:text ="${entry.key}" ></td>
<td th:text ="${entry.value}" ></td>
</tr>
</table>
你必须先迭代列表,然后从列表中读取每个地图,然后在键的帮助下读取地图对象,如下所示:
Java代码:
List<Map<String, String>> mapList = new ArrayList<>();
Map<String, Object> firstMap = new HashMap<>();
firstMap.put("id", "1");
firstMap.put("name", "test_name_1");
Map<String, Object> secondMap = new HashMap<>();
secondMap.put("id", "2");
secondMap.put("name", "test_name_2");
mapList.add(firstMap);
mapList.add(secondMap);
model.put("map_list", mapList);
Thymeleaf 代码:
<tr th:each="map : ${map_list}">
<td> CNP:</td>
<td th:text ="${map.get('id')}" ></td>
<td> Nume:</td>
<td th:text ="${map.get('name')}" ></td>
</tr>
我已经使用 Thymealeaf 在 Spring-MVC 中构建了一个应用程序,我想在 Thymealeaf 中的 table 中迭代数据库条目。
这是我正在迭代的对象:
List<Map<String, Object>> map
我在 Thymleaf 中试过这段代码:
<table>
<tr>
<td> CNP:</td>
<td th:text ="${raspuns.cif}" ></td>
</tr>
<tr>
<td> Nume:</td>
<td th:text ="${raspuns.den_client}" ></td>
</tr>
</table>
但它只显示 2 个条目,我知道它有 311 个或类似的条目。我如何遍历所有条目并将它们全部显示出来?
您应该首先 iterate through the list 然后遍历映射以访问键和值。
为了简化流程,建议将您的 List<Map<String,Object>>
转换为 Map<String, Object>
,如下所示:
Map<String, Object> result = map
.stream()
.collect(Collectors.toMap(s -> (String) s.get("key"),
s -> s.get("value")));
那么您可能想要遍历地图:
<table>
<tr>
<th> CNP:</th>
<th> Nume:</th>
</tr>
<tr each:="entry: ${map}">
<!-- You can access a {key, value} pair for each entry of the map -->
<td th:text ="${entry.key}" ></td>
<td th:text ="${entry.value}" ></td>
</tr>
</table>
你必须先迭代列表,然后从列表中读取每个地图,然后在键的帮助下读取地图对象,如下所示:
Java代码:
List<Map<String, String>> mapList = new ArrayList<>();
Map<String, Object> firstMap = new HashMap<>();
firstMap.put("id", "1");
firstMap.put("name", "test_name_1");
Map<String, Object> secondMap = new HashMap<>();
secondMap.put("id", "2");
secondMap.put("name", "test_name_2");
mapList.add(firstMap);
mapList.add(secondMap);
model.put("map_list", mapList);
Thymeleaf 代码:
<tr th:each="map : ${map_list}">
<td> CNP:</td>
<td th:text ="${map.get('id')}" ></td>
<td> Nume:</td>
<td th:text ="${map.get('name')}" ></td>
</tr>