带有一个标头的表和来自百里香的Map内Array中的数据

时间:2019-07-11 13:55:05

标签: html thymeleaf

我想创建一个表,其数据为Map <字符串,列表<对象>>。

因此该表具有一个标题,并且行应具有确切的数据。

  • Map.key
  • Object.item1
  • Object.item2
  • Object.item3

因此,由于它是一个对象列表,所以我希望该列表的每个对象和Map.key重复一行。

所以我需要遍历像

这样的键
<table>
    <thead>
        <tr>
            <th>Code</th>
            <th>Status</th>
            <th>Flag</th>
            <th>Message</th>
        </tr>
    </thead>
    <tbody>
        <tr th:each= "result : ${myMap}">
            <td th:text="${result.key}"></td>
            <td><table>
                <tr th:each="obj: ${result.value}">
                    <td th:text="${not #lists.isEmpty(obj.errorList)}?'Error':'Warning'"></td>
                    <td th:text="${obj.flag}==true?'YES':'NO'"></td>
                    <td th:text="${not #lists.isEmpty(obj.errorList)}?${obj.warningList}:${obj.errorList}"></td>
                </tr>
            </table></td>
        </tr>
    </tbody>
</table>

但是此解决方案将表放置在表中。我想使用一个标头并迭代列表,然后将变量放在主表中。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找这样的结构:

<table>
    <thead>
        <tr>
            <th>Code</th>
            <th>Status</th>
            <th>Flag</th>
            <th>Message</th>
        </tr>
    </thead>

    <tbody>
        <th:block th:each= "result : ${myMap}">
            <tr th:each="obj: ${result.value}">
                <td th:text="${result.key}" />
                <td th:text="${not #lists.isEmpty(obj.errorList)}?'Error':'Warning'" />
                <td th:text="${obj.flag}==true?'YES':'NO'" />
                <td th:text="${not #lists.isEmpty(obj.errorList)}?${obj.warningList}:${obj.errorList}" />
            </tr>
        </th:block>
    </tbody>
</table>