在HTML表中嵌套for循环

时间:2019-08-27 16:14:04

标签: javascript html thymeleaf

我正在尝试创建一个根据不同大小的列表创建的表。 我有汽车List<Car>的列表。因此,我想在标题中放置我所做的不同公司的名称。

然后我有一个List<List<CarSales>>,并不是每个carSales中都存在所有Car。 所以我想遍历每个tr的列表列表(也可以) 然后我想遍历列表中的td并将CarSales.sales放在正确的td中,其中标头的CarSales.mark = Car.makr。

因此,如果List<Cars>是(我的意思是Cars.mark)

[BMW, MERCEDES,FIAT]

List<List<CarSales>>是(我的意思是内部有标记和销售的对象)

[[BMW:5,FIAT:10],[MERCEDES:12]]

我想要一张桌子,上面有:

BMW - MERCEDES - FIAT

 5  -    0     -  10

 0  -   12     -  0

1 个答案:

答案 0 :(得分:1)

您也许可以这样做...但是,如果List<List<CarSales>>改为List<Map<String, Integer>>(其中键是标记,而值是),则可以使标记简单得多。销售)。然后您可能会遇到这样的事情:

<table>
  <tr>
    <th th:each="car: ${cars}" th:text="${car.mark}" />
  </tr>

  <tr th:each="sale: ${carSales}">
    <td th:each="car: ${cars}" th:text="${sale.get(car.mark)} ?: 0" />
  </tr>
</table>

如果您想使用原始结构,则可能会发生类似的事情,但是维护起来会更加混乱:

<table>
  <tr>
    <th th:each="car: ${cars}" th:text="${car.mark}" />
  </tr>

  <tr th:each="sales: ${carSales}">
    <td th:each="car: ${cars}" th:with="sale=${sales.^[mark==#root.car.mark]}" th:text="${sale?.sales} ?: 0" />
  </tr>
</table>