百里香中的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循环的主要内容,如果未能解决你的问题,请参考以下文章