提问者:小点点

Thymeleaf迭代:在th: each循环中使用index作为ArrayIndex


我想使用thymeleaf-loop的索引作为里面的arrayindex。例子:

<div th:each="service : ${requestedServices}">
   <div class="col-sm-1">
       <input type="checkbox" th:checked=*{service[index of loop?].requested}">
   </div>
</div>

我已经尝试在数组中使用serviceStat. index

${请求服务}是请求服务的数组列表

class RequestedService {
   Service service
   boolean requested
}
class Service {
   String name;
   int value;
}

我希望能为我的问题找到答案


共1个答案

匿名用户

serviceStat. index是索引数组的正确方法(请参阅保持迭代状态的最后一段-如果您没有显式设置状态变量,Thymeleaf将始终通过在迭代变量的名称后面添加Stat来为您创建一个:)。

话虽如此,因为您在th: field属性中使用它,所以您必须对索引使用预处理。

<div th:each="service : ${requestedServices}">
   <div class="col-sm-1">
       <input type="checkbox" th:checked="*{service[__${serviceStat.index}_].requested}" />
   </div>
</div>

(您可能还对Thymeleaf关于动态字段的教程感兴趣。)