百里香中的for循环

Posted

技术标签:

【中文标题】百里香中的for循环【英文标题】:for loop in thymeleaf 【发布时间】:2014-01-05 03:41:50 【问题描述】:

我怎样才能做到以下(java):

for(int i = 0; i < 81 ; i+=20)
   //Should loop through 5 times!

在百里香中?

我试过了:

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

问题是它不如java代码那么准确。如何做到这一点?

【问题讨论】:

$#numbers.sequence(1, 81/20) -> 这是什么。这是否在内部告诉它要在这个范围内运行,或者是我们在某处明确提到的东西 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

向您的代码添加步骤非常简单。

#numbers.sequence(0, 81, 20)

【讨论】:

【参考方案3】:

使用 iterStat 关键字进行迭代。例子 如果您有一个字符串数组,并且您正在使用 thymeleaf 进行迭代。

<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> 

【讨论】:

【参考方案4】:

我假设这是由于您使用的数字所致。对于您的 java 代码, 诠释 i = 0;我

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

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

如果您希望您的 java 代码镜像第二个代码,您应该将其更改为: 诠释 i = 1;我

简单来说,你是在一个不同数字的循环中运行,我建议将第二条语句改为从 0 开始。

【讨论】:

我知道,这只是一个尝试,我希望 thymeleaf 和 Java 代码一样。 那么您可以将百里香代码更改为 'numbers.sequence(0, 4)' 数字 81 是满分 100,这个数字实际上是模型中的某个数字,为​​了便于阅读,我只是硬编码输入了它 那么保持从 0,81/20 开始的序列,我会给出相同的结果。除了建议正确的起始数字之外,我无法为您提供更多帮助,从 0 开始将为您提供所需的结果。它给出错误循环数的唯一原因是您从每段代码中的不同数字开始。

以上是关于百里香中的for循环的主要内容,如果未能解决你的问题,请参考以下文章

如何将对象列表绑定到百里香中的复选框?

我正在尝试根据百里香中 pojo 的 id 获取特定图像

如何在百里香中结合 sec:authorize 和 th:if

如何在百里香中打印数组大小?

在百里香中显示项目列表总是出错

php中的for循环和js中的for循环