java - Thymeleaf:迭代 - 按 N 递增并访问 list.get(N)

标签 java html spring jakarta-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;
    }
}

任何其他可以解决我的问题的方法也总是受欢迎的!

最佳答案

我能够使用如下所示的方法解决它:

基本上,我仍然单独循环,但只是使用 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>

关于java - Thymeleaf:迭代 - 按 N 递增并访问 list.get(N),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31631287/

相关文章:

java - 如何在 groovy 中列出 JVM 中的所有(groovy)类

java - 为什么我们在 Hibernate 中使用 @Embeddable

javascript - 根据子元素的值更改父元素的 CSS

java - 使用 Spring 和 Hessian 的互操作性?是否可以?

javascript - 未调用 Spring Stomp Websockets 回调

java - 列表与按键扫描

java - eclipse无法添加内存

html - 媒体查询不适用于 chrome 但适用于 SO 编辑器

将 iframe 添加到文档时未执行 Javascript?

spring - 测试时如何从 @BeforeClass 方法中的 application.yml 文件获取 spring 属性