• 25.在springboot中使用thymeleaf循环(list,array,map)


    说明:

    本项目是在https://blog.csdn.net/weixin_59334478/article/details/126749179?spm=1001.2014.3001.5501https://blog.csdn.net/weixin_59334478/article/details/126749179?spm=1001.2014.3001.5501

    springboot文章23

    修改而来

    pom.xml文件,核心配置文件等文件,与文章23保持一致,本文只展示最新添加的文件,以减小文章冗余,更容易看出循环的使用方法。

    知识点:

    语法说明:
    th:each="user, iterStat : ${userlist}" 中的 ${userList} 是后台传过来的集合
    user
    定义变量,去接收遍历 ${userList} 集合中的一个数据
    iterStat
    ${userList} 循环体的信息
    其中 user iterStat 自己可以随便取名
    interStat 是循环体的信息,通过该变量可以获取如下信息
    index: 当前迭代对象的 index(从 0 开始计算)
    count: 当前迭代对象的个数(从 1 开始计算)这两个用的较多
    size: 被迭代对象的大小
    current: 当前迭代变量
    even/odd: 布尔值,当前循环是否是偶数 / 奇数(从 0 开始计算)
    first: 布尔值,当前循环是否是第一个
    last: 布尔值,当前循环是否是最后一个
    注意:循环体信息 interStat 也可以不定义,则默认采用迭代变量加上 Stat 后缀,即userStat

    1.index.html

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>index.htmltitle>
    6. head>
    7. <body>
    8. <h3>index.html------学习模板thymeleaf的语法h3>
    9. <a href="tpl/expression1">标准变量表达式a>
    10. <br/>
    11. <a href="tpl/expression2">选择变量表达式a>
    12. <br/>
    13. <a href="tpl/link">链接表达式a>
    14. <br/>
    15. <a href="tpl/eachList">循环Lista><br/>
    16. <a href="tpl/eachArray">循环Arraya><br/>
    17. <a href="tpl/eachMap">循环Mapa><br/>
    18. body>
    19. html>

     2.ThymeleafController类

    1. package com.it.controller;
    2. import com.it.entity.SysUser;
    3. import org.springframework.stereotype.Controller;
    4. import org.springframework.ui.Model;
    5. import org.springframework.web.bind.annotation.GetMapping;
    6. import org.springframework.web.bind.annotation.RequestMapping;
    7. import org.springframework.web.bind.annotation.ResponseBody;
    8. import javax.jws.WebParam;
    9. import java.util.ArrayList;
    10. import java.util.HashMap;
    11. import java.util.List;
    12. import java.util.Map;
    13. @Controller
    14. @RequestMapping("/tpl")
    15. public class ThymeleafController {
    16. //标准变量表达式
    17. @GetMapping("/expression1")
    18. public String expression1(Model model){
    19. //添加数据到model
    20. model.addAttribute("site","www.baidu.com");
    21. model.addAttribute("myuser",new SysUser(1001,"小绿","女",22));
    22. //指定视图
    23. return "expression1";
    24. }
    25. //选择变量表达式
    26. @GetMapping("/expression2")
    27. public String expression2(Model model){
    28. //添加数据到model
    29. model.addAttribute("site2","www.bibili.com");
    30. model.addAttribute("myuser2",new SysUser(1002,"小王","男",26));
    31. //指定视图
    32. return "expression2";
    33. }
    34. //链接表达式
    35. @GetMapping("/link")
    36. public String link(Model model){
    37. model.addAttribute("userId",1003);
    38. return "link";
    39. }
    40. //测试链接表达式的地址
    41. @GetMapping("/queryAccount")
    42. @ResponseBody
    43. public String queryAccount(Integer id){
    44. return "queryAccount,参数id="+id;
    45. }
    46. //测试链接表达式有两个参数的地址
    47. @GetMapping("queryUser")
    48. @ResponseBody
    49. public String queryUser(String name,Integer age){
    50. return "queryUser,有两个参数:name="+name+",age="+age;
    51. }
    52. //循环list
    53. @GetMapping("/eachList")
    54. public String eachList(Model model){
    55. List list=new ArrayList<>();
    56. list.add(new SysUser(1002,"张山","男",20));
    57. list.add(new SysUser(1003,"小明","男",20));
    58. list.add(new SysUser(1004,"小红","女",22));
    59. list.add(new SysUser(1005,"小花","女",21));
    60. model.addAttribute("myusers",list);
    61. return "eachList";
    62. }
    63. //循环数组
    64. @GetMapping("/eachArray")
    65. public String eachArray(Model model){
    66. SysUser userArray[]=new SysUser[3];
    67. userArray[0]=new SysUser(1001,"小王","男",23);
    68. userArray[1]=new SysUser(1002,"小李","男",22);
    69. userArray[2]=new SysUser(1003,"小胡","女",23);
    70. model.addAttribute("userarray",userArray);
    71. return "eachArray";
    72. }
    73. //循环map
    74. @GetMapping("/eachMap")
    75. public String eachMap(Model model){
    76. Map map=new HashMap<>();
    77. map.put("user1",new SysUser(1001,"小黑","男",23));
    78. map.put("user2",new SysUser(1002,"小白","男",22));
    79. map.put("user3",new SysUser(1003,"小红","女",23));
    80. model.addAttribute("mymap",map);
    81. return "eachMap";
    82. }
    83. }

    3.eachList.html

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>each循环title>
    6. head>
    7. <body>
    8. <div style="margin-left: 400px">
    9. <br/>
    10. <table border="1">
    11. <thead>
    12. <tr>
    13. <td>编号td>
    14. <td>id序号td>
    15. <td>nametd>
    16. <td>sextd>
    17. <td>agetd>
    18. tr>
    19. thead>
    20. <tbody>
    21. <tr th:each="user,userI:${myusers}">
    22. <td th:text="${userI.count}">td>
    23. <td th:text="${user.id}">td>
    24. <td th:text="${user.name}">td>
    25. <td th:text="${user.sex}">td>
    26. <td th:text="${user.age}">td>
    27. tr>
    28. tbody>
    29. table>
    30. div>
    31. body>
    32. html>

    4.eachArray.html

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>each循环title>
    6. head>
    7. <body>
    8. <div style="margin-left: 400px">
    9. <div th:each="user:${userarray}">
    10. <p th:text="${user.id}">p>
    11. <p th:text="${user.name}">p>
    12. <p th:text="${user.sex}">p>
    13. <p th:text="${user.age}">p>
    14. <br/>
    15. <hr/>
    16. div>
    17. div>
    18. body>
    19. html>

    5.eachMap.html

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>循环maptitle>
    6. head>
    7. <body>
    8. <div style="margin-left: 400px">
    9. <div th:each="map,mapStat:${mymap}">
    10. <p th:text="${map.key}">p>
    11. <p th:text="${map.value}">p>
    12. <p th:text="${map.value.id}">p>
    13. <p th:text="${map.value.name}">p>
    14. <p th:text="${map.value.sex}">p>
    15. <p th:text="${map.value.age}">p>
    16. <p th:text="${mapStat.count}">p>
    17. div>
    18. div>
    19. body>
    20. html>

    测试:

    1.list循环测试

     循环遍历的数据按照原样展示输出

     循环遍历的数据加上循环变量的编号,按照表格的样式进行展示

     2.array循环测试

     

    点击循环Array

    3.map循环测试

    点击循环Map

  • 相关阅读:
    altera系列fifo和ram
    数据结构知识点总结12-(第六章.图)-图的存储结构及图的遍历
    AI | 第1章 机器学习 Sklearn 入门笔记
    四种Python逐行读取文件内容的方法
    Vue常见指令补充(附加案例)
    (十)笔记.net学习Lambda和Linq表达式
    List 对象集合,如何优雅地返回给前端?
    WPF 应用迁移到 Electron 框架过程记录
    JVM 参数使用总结
    CockroachDB-备份与恢复(6)RESTORE命令
  • 原文地址:https://blog.csdn.net/weixin_59334478/article/details/126757609