2015-11-20 2 views
0

Как я могу повторять два списка одновременно с использованием thymeleaf th: each.Thymeleaf th: каждые две итерации двух листингов

<select id="rooms" th:field="*{room}"> 
     <option th:each="room : ${roomsFromHotel}" 
       th:value="${{room}}" 
       th:text="${room.id}"> 
      room name 
     </option> 
    </select> 

Это работает, но я хотел бы сделать что-то вроде этого

<select id="rooms" th:field="*{room}"> 
    <option th:each="room : ${roomsFromHotel}, roomType : ${roomTypesList}" 
      th:value="${{room}}" 
      th:text="${roomType.name}"> 
      room name 
     </option> 
    </select> 

ответ

1

К сожалению, вы не можете сделать это таким образом.

Два варианта, которые я могу думать прямо сейчас:

  1. Если списки имеют одинаковый размер и индексы соответствуют тому же объекту, поместите их в карту и перебирать карту. Таким образом, вы получите комнату и комнату. Тип

  2. (Предпочтительно) Создайте объект и сохраните в нем комнату и комнатуType, затем добавьте его в один список и выполните итерацию списка.

Я предпочитаю второй метод, потому что вы можете гарантировать, что вы фактически переходите в список и на уровень представления для обработки.