在百里香的循环

时间:2013-12-17 11:39:42

标签: html loops each thymeleaf

如何执行以下操作(java):

for(int i = 0; i < 81 ; i+=20){
   //Should loop through 5 times!
}
在Thymeleaf?

我试过这个:

<option th:each="i : ${#numbers.sequence( 1, 81/20)}">
   <p th:text="${ i }"></p> <!-- THIS loops 4 times, instead of 5 -->
</option>

问题在于它不如java代码那么准确。怎么做?

4 个答案:

答案 0 :(得分:10)

为代码添加步骤非常简单。

#{numbers.sequence(0, 81, 20)}

答案 1 :(得分:8)

使用 iterStat 关键字进行迭代。例 如果你有一个字符串数组,你正在使用百里香叶进行迭代。

<div th:each="str,iterStat : strings">
   <span th:text="${str}"/><!--This will print the index value-->
   <span th:text="${iterStat.index}"/><!--This will print the Index-->
</div> 

答案 2 :(得分:5)

我假设这是由于您使用的数字。对于你的java代码,     int i = 0;我&lt; 81; I + = 20 将返回i = 0,i = 20,i = 40,i = 60且i = 80

但是你的代码如下     numbers.sequence(1,81 / 20)} 应该返回从1到4.05的整数,分别为1,2,3和4。

第一个循环返回i的5个结果,因此运行5次。 第二个只返回4个结果,因此运行4次。我建议从0开始运行你的序列,根据需要返回5个结果。

如果您希望Java代码镜像第二个代码,则应将其更改为: int i = 1;我&lt; 4.05; I + = 1

简单地说,你正在使用不同数字的循环,我建议将第二个语句改为从0开始。

答案 3 :(得分:1)

第一个值是计数的开始,第二个是最大值,第三个是增量值

${#numbers.sequence( 1, 4, 1)}