Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Thymeleaf th:每两个迭代两个列表_Spring_Spring Mvc_Thymeleaf - Fatal编程技术网

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

Spring Thymeleaf th:每两个迭代两个列表,spring,spring-mvc,thymeleaf,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 </opti

如何使用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>

房间名称
这是工作,但我想这样做

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

房间名称

不幸的是,你不能那样做

我现在可以想到两个选择:

  • 如果列表大小相等,索引对应于同一个对象,则将它们放在映射中并迭代映射。这样你就可以得到房间和房间类型

  • (首选)创建一个对象并在其中保存房间和roomType,然后将其添加到单个列表并迭代该列表


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

    要扩展@Aeseir answers第二个选项,我想最好使用room和roomType创建内部类inside controller方法。这样,您就不会堆积项目结构,并且拥有单一用途的对象,这在本例中是可取的