我正在尝试使用 th:block 使表格更具体地分析我的数据..
我正在努力
<table>
<thead>
<tr>
<th>something</tr>
<th>something2</tr>
<th>something3</tr>
</tr>
</thead>
<tbody>
<tr>
<th:block th:if="${not #maps.isEmpty(result)}" th:each="firstEntry : ${result}">
<th:block th:if="${firstEntryStat.count == 0}">
<tr>
</th:block>
<td th:text="${firstEntry.value}"></td>
<th:block th:if="${firstEntryStat.count == 0}">
</tr>
</th:block>
</th:block>
</tbody>
</table>
我尝试制作这种表格(在帖子末尾)
但它以错误结束,即
元素类型“th:block”必须由匹配的结束标记终止 “”
所以我尝试了另一种方法,
<table>
<thead>
<tr>
<th>something</tr>
<th>something2</tr>
<th>something3</tr>
</tr>
</thead>
<tbody>
<tr>
<th:block th:if="${not #maps.isEmpty(result)}" th:each="firstEntry : ${result}">
<tr th:if="${firstEntryStat.count == 0}">
<td th:text="${firstEntry.value}"></td>
</tr th:if="${firstEntryStat.count == 0}">
</th:block>
</tbody>
</table>
但是,它产生了如下错误
元素类型“tr”的结束标记必须以“>”分隔符结尾。
有没有办法制作如上图所示的数据表?
我的地图数据的结构如下
Maps< String , Maps< String, Maps< String, Long>>> result = new HashMap<>();
result = {
"First": {
"time": {
"now": "",
"past": "",
"future": ""
},
"sleifj": {
"now": "",
"past": "",
"future": ""
}
},
"Second": {
"time": {
"now": "",
"past": "",
"future": ""
},
"sleifj": {
"now": "",
"past": "",
"future": ""
}
}
}
====================================================== ================= 附加数据信息 我的地图数据看起来像
First
- time
- now : slejflesf
- past : lsijefleisf
- future : lsajiefeasf
- sleifj
- now : slejflesf
- past : lsijefleisf
- future : lsajiefeasf
Second
- time
- now : slejflesf
- past : lsijefleisf
- future : lsajiefeasf
- sleifj
- now : slejflesf
- past : lsijefleisf
- future : lsajiefeasf
------------------------------------------------------
Map Name | Sub Name | Now | Past | Future |
------------------------------------------------------
First | time | asfas | lsefa | saeflkjle|
------------------------------------------
| sleifj | dsff | sfesf | sefasefa |
------------------------------------------------------
Second | time | asfas | lsefa | saeflkjle|
------------------------------------------
| sleifj | dsff | sfesf | sefasefa |
------------------------------------------------------
在您的第一个示例中,当您尝试嵌套 2 个表格行时,您在 2 个
</tr>
标签之间缺少 </th:block>
,这是不可取的。
第二个示例仍然存在相同的问题,但为此我认为您不能在结束标签上使用
th:if
。
查看您编写的 ASCII 模型,您可能想要做的就是将子图中非第一个项目的第一个
<td>
元素留空。 (参见下面的模拟代码)
<table>
<thead>
<tr>
<th>Map Name</th>
<th>Sub Name</th>
<th>Now</th>
<th>Past</th>
<th>Future</th>
</tr>
</thead>
<tbody>
<th:block th:each="mapNameItem : ${result}">
<tr th:each="subMapItem : ${mapNameItem}">
<td th:if="subMapItemStat.count == 0" th:text="mapNameItem.key" />
<td th:if="subMapItemStat.count != 0" />
<td th:text="subMapItem.key" />
<td th:text="subMapItem.get('now')" />
<td th:text="subMapItem.get('past')" />
<td th:text="subMapItem.get('feature')" />
</tr>
</th:block>
</tbody>
</table>
您可能希望将
th:each
上最外面的 th:block
移动到 tbody
,而不是根据您的格式需求。