Thymeleaf 迭代地图的地图以创建 table 与 rowspans
Thymeleaf iterate map of maps to create table with rowspans
假设我有
Date occuranceDate; //Dates only have years, months, days
String eventOwner;
String eventData;
示例数据:
12-01-2021 , John Doe, random event data 1
12-01-2021, Jane Doe, random event data 2
12-01-2021, Jane Doe, random event data 3
12-02-2021, John Doe, random event data 4
我正在尝试用 thymeleaf 创建一个 table,它有三列 Event Date, Event Owner, event Data
。这样
- 事件日期的行跨度大小等于该日期的事件数据数。
- 事件所有者的行跨度大小等于该事件所有者在该日期的事件数据数
- 事件数据
对于上面的数据,table想要
我想创建一个 table 来显示 eventData
的列表,按 eventOwner
分组,按 occuranceDate
分组
我正在将 Map<Date, Map<String, List<String>>>
传递给 Thymeleaf(我愿意更改数据结构)。对于如何生成 table 的任何帮助,我将不胜感激,事实证明它非常复杂。
我尝试了以下操作: 但由于代表嵌套地图和列表的三个不同列,这变得很复杂
您只需 List<Event>
即可完成此操作。 (我确实添加了一个变量 occuranceDateString
,它只是 occuranceDate
的字符串版本。)
<table>
<tr th:each="event, stat: ${events}"
th:with="
newDate=${(stat.index == 0) || (events[stat.index - 1].occuranceDateString != event.occuranceDateString)},
newOwner=${newDate || (stat.index == 0) || (events[stat.index - 1].eventOwner != event.eventOwner)},
" valign="top">
<td th:if="${newDate}" th:text="${event.occuranceDateString}" th:rowspan="${events.?[occuranceDateString == #root.event.occuranceDateString].size()}" />
<td th:if="${newOwner}" th:text="${event.eventOwner}" th:rowspan="${events.?[occuranceDateString == #root.event.occuranceDateString].?[eventOwner == #root.event.eventOwner].size()}" />
<td th:text="${event.eventData}" />
</tr>
</table>
假设我有
Date occuranceDate; //Dates only have years, months, days
String eventOwner;
String eventData;
示例数据:
12-01-2021 , John Doe, random event data 1
12-01-2021, Jane Doe, random event data 2
12-01-2021, Jane Doe, random event data 3
12-02-2021, John Doe, random event data 4
我正在尝试用 thymeleaf 创建一个 table,它有三列 Event Date, Event Owner, event Data
。这样
- 事件日期的行跨度大小等于该日期的事件数据数。
- 事件所有者的行跨度大小等于该事件所有者在该日期的事件数据数
- 事件数据
对于上面的数据,table想要
我想创建一个 table 来显示 eventData
的列表,按 eventOwner
分组,按 occuranceDate
我正在将 Map<Date, Map<String, List<String>>>
传递给 Thymeleaf(我愿意更改数据结构)。对于如何生成 table 的任何帮助,我将不胜感激,事实证明它非常复杂。
我尝试了以下操作:
您只需 List<Event>
即可完成此操作。 (我确实添加了一个变量 occuranceDateString
,它只是 occuranceDate
的字符串版本。)
<table>
<tr th:each="event, stat: ${events}"
th:with="
newDate=${(stat.index == 0) || (events[stat.index - 1].occuranceDateString != event.occuranceDateString)},
newOwner=${newDate || (stat.index == 0) || (events[stat.index - 1].eventOwner != event.eventOwner)},
" valign="top">
<td th:if="${newDate}" th:text="${event.occuranceDateString}" th:rowspan="${events.?[occuranceDateString == #root.event.occuranceDateString].size()}" />
<td th:if="${newOwner}" th:text="${event.eventOwner}" th:rowspan="${events.?[occuranceDateString == #root.event.occuranceDateString].?[eventOwner == #root.event.eventOwner].size()}" />
<td th:text="${event.eventData}" />
</tr>
</table>