如何在同一个循环内同时迭代多个数组

时间:2020-03-10 14:10:54

标签: java spring-boot spring-mvc thymeleaf

我是thymeleaf的新手,我想在相同的div.row内显示3个具有相同索引的不同数组的3个值,我尝试了几种方法,但只能在一个数组上进行迭代没有错误的时间,下面是我的控制器端:

public String  index(Model model) {

  String[] table0 = {"0","1","2","3"}
  String[] table1 = {"14","21","25","75"}
  String[] table2 = {"7","63","57","87"}

  model.addAttribute("table0", table0;
  model.addAttribute("table1", table1);
  model.addAttribute("table2", table2);

  return "index";
}

在html文件中,table0是第一个没有错误的迭代数组,我不知道如何编辑/改进以下代码以显示所有三个数组{{1 }},tables0tables1

tables3

2 个答案:

答案 0 :(得分:2)

在这里您可以找到要搜索的内容,keeping iteration status

只需在对象之后添加一个var,然后使用index即可获取当前索引值

例如:

<div class="row" th:each="v0,iter : ${tables0}" >
    <div class="cell" th:text="value">
        <!-- Here I could display a value from tables0 -->
        <span th:text="${v0}"></span>
    </div>
    <div class="cell"  >
        <span th:text="${table1[iter.index]}"></span>
    </div>
    <div class="cell"  >
        <span th:text="${table2[iter.index]}"></span>                  
    </div>
</div>

答案 1 :(得分:1)

您可以使用Thymeleaf的iterStat进行此操作。

假设以下输入数据:

String[] table0 = {"0", "1", "2", "3"};
String[] table1 = {"14", "21", "25", "75"};
String[] table2 = {"7", "63", "57", "87"};

您可以使用以下Thymeleaf标记:

<div class="row" th:each="val,iterStat  : ${table0}" >
    <div class="cell" th:text="${val}">
    </div>
    <div class="cell" th:text="${table1[iterStat.index]}">
    </div>
    <div class="cell" th:text="${table2[iterStat.index]}">
    </div>
</div>  

这将产生一列数字,如下所示(我没有任何CSS,所以它只是原始输出):


0
14
7
1
21
63
2
25
57
3
75
87

相关的html看起来像这样:

<div class="row">
    <div class="cell">0</div>
    <div class="cell">14</div>
    <div class="cell">7</div>
</div>
<div class="row">
    <div class="cell">1</div>
    <div class="cell">21</div>
    <div class="cell">63</div>
</div>
<div class="row">
    <div class="cell">2</div>
    <div class="cell">25</div>
    <div class="cell">57</div>
</div>
<div class="row">
    <div class="cell">3</div>
    <div class="cell">75</div>
    <div class="cell">87</div>
</div>                

here描述了iterStat函数-它基本上跟踪您的迭代。由于您希望每个表具有相同的索引,因此非常适合您的需求。

相关问题