在java文件里准备好相关的数据,首先看的是嵌套循环,嵌套循环是先把数据包进list,再用map包起来,再传到网页,然后,一层层的打开,然后,显示数据.如果不是同类型的数据,不要乱放.
先建好User类,这里使用了lombok,其实这个也可以不用,不用的话,就要自己写get/set/toString
package com.example.model; import lombok.Data; @Data public class User { public Integer userid; public String username; }
再建一个Controller类
package com.example.control; import com.example.model.User; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Controller public class MyController { @RequestMapping("/list") public String eachlist(Model model){ List<User> userList=new ArrayList<>(); for(int i=1;i<10;i++){ User user=new User(); user.setUserid(100+i); user.setUsername("小小"+i); userList.add(user); } model.addAttribute("userlist",userList); model.addAttribute("data","SpringBoot"); return "eachList"; } @RequestMapping("/map") public String eachMap(Model model){ Map<Integer,Object> userMaps=new HashMap<>(); for(int i=1;i<10;i++){ User user=new User(); user.setUserid(100+i); user.setUsername("小小"+i); userMaps.put(i,user); } model.addAttribute("userMaps",userMaps); return "eachMap"; } @RequestMapping("/array") public String eachArray(Model model){ User[] userArray=new User[10]; for(int i=0;i<10;i++){ User user=new User(); user.setUserid(100+i); user.setUsername("小小"+i); userArray[i]=user; } model.addAttribute("userArray",userArray); return "eachArray"; } @RequestMapping("/eachall") public String eachall(Model model){ List<Map<Integer,List<User>>> mapList=new ArrayList<Map<Integer, List<User>>>(); for(int i=0;i<2;i++){ Map<Integer,List<User>> myMap=new HashMap<Integer, List<User>>(); for(int j=0;j<2;j++){ List<User> myUserlist=new ArrayList<User>(); for(int k=0;k<3;k++){ User user=new User(); user.setUserid(k); user.setUsername(i+"小小"+k); myUserlist.add(user); } myMap.put(j,myUserlist); } mapList.add(myMap); } model.addAttribute("mylist",mapList); return "eachall"; } }
这里用了几种方式的遍历循环.导向各自不同的网页.
eachmap
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>eachmap</title> </head> <body> <!--这里面隐藏了一个参数,usersStat,不声明时,默认为这个,当然,也可以自己声明,这时,可以随意取名字--> <div th:each="users:${userMaps}"> <span th:text="${usersStat.count}"></span> <span th:text="${usersStat.index}"></span> <span th:text="${users.key}"></span> <span th:text="${users.value}"></span> <!--这里的报错,是软件的问题,因为软件没有识别,但是没有错--> <span th:text="${users.value.getUserid()}"></span> <span th:text="${users.value.getUsername()}"></span> </div> </body> </html>
eachlist
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>eachlist</title> </head> <body> <!-- 第一个参数user,是循环的名字(随意就行) 第二个参数userState,当前循环对旬状态的变量(可选,默认就是对象变量名+Stat) 第三个参数${userlist}是当前循环对象集合 --> <div th:each="user,userStat:${userlist}"> <span th:text="${userStat.count}"></span> <span th:text="${user.getUserid()}"></span> <span th:text="${user.getUsername()}"></span> </div> <!--没有写userStat,也可以使用userStat这个变量--> <br/><br/> <div th:each="user:${userlist}"> <span th:text="${userStat.count}"></span> <span th:text="${user.getUserid()}"></span> <span th:text="${user.getUsername()}"></span> </div> <!--后台的值,用model添加,就能在前台的任何需要的地方取出来--> <h1 th:text="${data}">xxxx</h1> </body> </html>
eacharray
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>eacharray</title> </head> <body> <!--如果传过来的是数组,最好把数组填满,不然可能会报错.--> <div th:each="user,userStat:${userArray}"> <span th:text="${userStat.count}"></span> <span th:text="${user.userid}"></span> <span th:text="${user.getUsername()}"></span> </div> </body> </html>
eachall
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>eachall</title> </head> <body> <h2>循环遍历复杂集合:list->map->list->user</h2> <!--这里是把最外层的list打开,然后可以取出map对象--> <div th:each="myListMap:${mylist}"> <!--这里是打开map,取出里面的list对象--> <div th:each="myListMapObj:${myListMap}"> <!--这一行,是取出map对象myListMapObj里的key,他的value对象是一个list,还要再循环--> Map集合的key:<span th:text="${myListMapObj.key}"></span> <!--到这里,就取出了最后一层list里的对象了,这时里面就是User对象了,这里取出的是Map对象的value--> <div th:each="myListMapList:${myListMapObj.value}"> <span th:text="${myListMapList.getUserid()}"></span> <span th:text="${myListMapList.getUsername()}"></span> </div> </div> </div> </body> </html>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期