thymeleaf模板 只有length如何循环生成标签?

发布于 2022-09-04 23:43:07 字数 42 浏览 16 评论 0

module的参数是一个数字,如何利用这个数字循环生成固定个数的标签?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

地狱即天堂 2022-09-11 23:43:07

我理解你的问题是不是要这样
输入:一个数字
输出:根据数字大小循环生成固定的一个标签,标签个数有数字大小决定

如果是这样的话,你可能需要用thymeleaf的内置函数了:#numbers.sequence
这个方法就是根据传入的参数生成一个数列,类似于javafor循环一样,支持两个参数和三个参数的
参数一:起始值(包含)
参数二:终点值(包含)
参数三:步长

举个栗子~
java代码传入一个length参数

clipboard.png

页面这么循环

clipboard.png

最终效果:

clipboard.png

当然如果你要是生成固定的标签的话,可以不用管那个循环体i
类似这样

clipboard.png

clipboard.png

补充:
刚有人问到循环的时候步长怎么处理,这里涉及到的就是th:each默认提供的一些循环中的参数了,这个参数没有固定的名字,使用时,在循环参数后逗号+参数别名,例如th:each="i, stat:${#numbers.sequence(10, 15)}",这个参数现在的别名就是stat,那在循环中你就可以直接使用这个参数了,根据文档,这个参数有这些属性

clipboard.png

可以看到加粗的就是属性了,使用时,直接像stat.index这样就可以使用了,但是可以看到,步长属性,是没有的,但是由于已经有了indexcount这种序列属性,那步长属性也是可以通过th:if来构造出来

为了方便,我们以count属性来构造步长为3的循环,count是从1开始,所以步长为3,那当前count肯定满足(count-1)%2 == 0,所以有以下例子,循环10-20,步长为3

<span th:each="i,stat:${#numbers.sequence(10, 20)}">
     <span th:if="${(stat.count-1)%3==0}" th:text="${'啊' + i}"></span></br>
</span>

结果如下

clipboard.png

当然th:each也支持默认的循环参数名字是:循环变量+Stat,所以也可以不用声明别名stat,直接这么写

<span th:each="i:${#numbers.sequence(10, 20)}">
      <span th:if="${(iStat.count-1)%3==0}" th:text="${'啊' + i}"></span></br>
</span>

当然最后执行的效果是一样的

暗恋未遂 2022-09-11 23:43:07

步长呢,步长怎么控制

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文