Thymeleaf 按照固定间隔遍历list

发布于 2022-01-06 05:07:59 字数 838 浏览 879 评论 7

刚接触  Thymeleaf ,我在后台代码中封装了一个list对象,例如如下

List<User> users = new ArrayList<User>();
User user1 = new User();
user1.setName("张三");
user1.setAge(11);

User user2 = new User();
user2.setName("张三");
user2.setAge(11);

User user3 = new User();
user3.setName("张三");
user3.setAge(11);
....

users.add(user);
users.add(user1);
users.add(user2);
....


把这个list对象传递到前端后,使用Thymeleaf 进行解析:

想解析成如下格式:

<div >
  <div >
    <div>user1.userName</div>
    <div>user2.userName</div>
  </div>
  <div >
    <div>user3.userName</div>
    <div>user4.userName</div>
  </div>
  ....
</div>

想请教大神们,使用Thymeleaf 语法,应该如何实现上述间隔相同数量遍历List对象。

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

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

发布评论

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

评论(7

彩扇题诗 2022-01-08 00:27:00

我找了很多资料,确实没有找到如何才能实现,不过一楼的回答可行,只是我觉得那种方式不是太好

哑剧 2022-01-08 00:26:59

你这个好像还有点特殊,应该有index标志,如果小于2显示前两个,否则显示后两个。并配合th:each标签感觉做出来应该不是问题

冬天旳寂寞 2022-01-08 00:26:52

不是有th:each遍历嘛,多简单

空城仅有旧梦在 2022-01-08 00:13:58

引用来自“Simmy”的评论

一直用freemarker没用过thymeleaf,帮你查了下,应该是这样:

  1. 在Controller中对数据分片为[[user1,user2], [user3,user4] ...]
  2. view中迭代2层

Controller

final List<List<User>> rows = ListUtils.partition(users, 2);
model.addAttribute("rows", rows);

 

View

<div th:each="row,iterStat : ${rows}" th:class="${iterStat.odd}? 'odd'">
  <div th:each="user: row"> <!-- 或许是这样: <div th:each="user: ${row}"> -->
    <div th:text="${user.name}"></div>
  </div>
</div>

 

参考: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#iteration

 

凡尘雨 2022-01-08 00:06:06

<div th:each="user: ${row}">

伪装你 2022-01-08 00:05:47

有修改,刷新下。

不确定是<div th:each="user: row"> 还是 <div th:each="user: ${row}">

成熟的代价 2022-01-07 22:41:41

一直用freemarker没用过thymeleaf,帮你查了下,应该是这样:

  1. 在Controller中对数据分片为[[user1,user2], [user3,user4] ...]
  2. view中迭代2层

Controller

final List<List<User>> rows = ListUtils.partition(users, 2);
model.addAttribute("rows", rows);

 

View

<div th:each="row,iterStat : ${rows}" th:class="${iterStat.odd}? 'odd'">
  <div th:each="user: row"> <!-- 或许是这样: <div th:each="user: ${row}"> -->
    <div th:text="${user.name}"></div>
  </div>
</div>

 

参考: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#iteration

 

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