Thymeleaf:迭代 - 按N和访问列表递增.get(N)

时间:2015-07-25 21:24:50

标签: java html spring java-ee thymeleaf

所以我已经阅读了文档的Iterations部分,但仍未对如何执行以下操作提出任何建议:

迭代每2条记录(因为我呈现的内容如下所示)和按索引访问列表。

<div class="row">
   <div class="col-md-6">
      ...
   </div>
   <div class="col-md-6">
      ...
   </div>
</div>

基本上如果这是在代码中,它看起来像

for (int i = 0; i < size;) {
    // do stuff

    // manual increment
    if (i + 2 > size) {
        i++;
    } else {
        i += 2;
    }
}

任何其他可以满足我的问题的方法也是受欢迎的!

1 个答案:

答案 0 :(得分:1)

我能够使用以下内容解决它:

基本上,我仍然使用th:if="${stat.even}"单独循环但只是跳过其他所有记录,然后按stat.index + 1获取下一条记录。

尽管对IndexOutOfBoundsException非常谨慎。

<div class="row" th:each="hivRisk, stat : ${hivRiskList}" th:if="${stat.even}">
   <div class="col-md-6" th:with="leftRisk=${hivRiskList.get(stat.index)}">
      <div class="checkbox checkbox-styled">
         <label>
         <input type="checkbox" value="-1" th:value="${leftRisk.id}"/>
         <span th:text="${leftRisk.name}">HIV Risk</span>
         </label>
      </div>
   </div>
   <div class="col-md-6" th:if="${stat.index + 1 &lt; hivRiskList.size()}" th:with="rightRisk=${hivRiskList.get(stat.index + 1)}">
      <div class="checkbox checkbox-styled">
         <label>
         <input type="checkbox" value="-1" th:value="${rightRisk.id}"/>
         <span th:text="${rightRisk.name}">HIV Risk</span>
         </label>
      </div>
   </div>
</div>