Thymeleaf th:每两个迭代两个列表

Mig*_*jão 5 spring spring-mvc thymeleaf

如何使用 thymeleaf th:each 同时迭代两个列表。

    <select id="rooms" th:field="*{room}">
        <option th:each="room : ${roomsFromHotel}"
                th:value="${{room}}"
                th:text="${room.id}">
            room name
        </option>
    </select>
Run Code Online (Sandbox Code Playgroud)

这是有效的,但我想做这样的事情

    <select id="rooms" th:field="*{room}">  
    <option th:each="room : ${roomsFromHotel}, roomType : ${roomTypesList}"
            th:value="${{room}}"
            th:text="${roomType.name}">
            room name
        </option>
    </select>
Run Code Online (Sandbox Code Playgroud)

Aes*_*eir 5

不幸的是,你不能那样做。

我现在能想到的两个选项:

  1. 如果列表大小相同且索引对应于同一对象,则将它们放入 Map 并迭代该映射。这样你就会得到房间和房间类型

  2. (首选)创建一个对象并将房间和房间类型保存在其中,然后将其添加到单个列表并迭代列表。

我更喜欢第二种方法,因为您可以保证实际传递到列表和视图层进行处理的内容。