• SpringBoot自带模板引擎Thymeleaf使用详解②


    目录

    一、条件判断和迭代遍历

    1.1 条件判断

    2.2 迭代遍历

    二、获取域中的数据和URL写法

    2.1 获取域中的数据

    2.2 URL写法

    三、相关配置


    一、条件判断和迭代遍历

    1.1 条件判断

    语法 作用
    th:if 条件判断

    准备数据

    model.addAttribute("sex","男");

    使用实例


        这是女生
        这是男生

    运行结果: 

    当然还有th:case也是相当于Java中的switch

    添加数据

    model.addAttribute("id",2);

    使用实例


        id为1
        id为2
        id为3
        id为*

    运行结果

    2.2 迭代遍历

    编写实体类

    1. package com.example.springbootdemo2.pojo;
    2. public class User {
    3. private int id;
    4. private String name;
    5. private int age;
    6. public User() {
    7. }
    8. public User(int id, String name, int age) {
    9. this.id = id;
    10. this.name = name;
    11. this.age = age;
    12. }
    13. public int getId() {
    14. return id;
    15. }
    16. public void setId(int id) {
    17. this.id = id;
    18. }
    19. public String getName() {
    20. return name;
    21. }
    22. public void setName(String name) {
    23. this.name = name;
    24. }
    25. public int getAge() {
    26. return age;
    27. }
    28. public void setAge(int age) {
    29. this.age = age;
    30. }
    31. }

    准备数据

    // 添加List列表集合
    User user1 = new User(1,"张三",100);
    User user2 = new User(2,"李四",90);
    User user3 = new User(3,"王五",60);
    User user4 = new User(4,"老六",29);
    List users = new ArrayList<>();
    users.add(user1);
    users.add(user2);
    users.add(user3);
    users.add(user4);
    model.addAttribute("users",users); 

    在页面中展示数据且配合状态变量

    thymeleaf将遍历的状态变量封装到一个对象中,通过该对象的属性可以获取状态变量:

    状态变量常用属性
    状态变量含义
    index当前迭代器的索引,从0开始
    count当前迭代对象的计数,从1开始
    size被迭代对象的长度
    odd/even布尔值,当前循环是否是偶数/奇数,从0开始
    first布尔值,当前循环的是否是第一条,如果是返回true,否则返回false
    last布尔值,当前循环的是否是最后一条,如果是则返回true,否则返回false

    使用实例


       
           
           
           
           
           
           
           
           
           
           
       
       
           
           
           
           
           
           
           
           
           
           
       
    id姓名年龄当前迭代器的索引,从0开始当前迭代对象的计数,从1开始被迭代对象的长度布尔值,当前循环是否是偶数,从0开始布尔值,当前循环是否是奇数,从0开始布尔值,当前循环的是否是第一条,如果是返回true,否则返回false布尔值,当前循环的是否是最后一条,如果是则返回true,否则返回false

    运行结果: 

    遍历Map

    准备数据

    // 添加map集合数据
    Map userMap = new HashMap<>();
    userMap.put("user1",user1);
    userMap.put("user2",user2);
    userMap.put("user3",user3);
    userMap.put("user4",user4);
    model.addAttribute("userMap",userMap);

    使用实例 


       
           
           
           
           
       
       
           
           
           
           
       
    IDNameAgeKey

    运行结果: 

    二、获取域中的数据和URL写法

    2.1 获取域中的数据

    thymeleaf也可以获取request,session,application域中的数据,方法如下:

    准备数据

    // 往request域设置数据
    req.setAttribute("req","request");
    // 往response域设置数据
    session.setAttribute("session","session");
    // 往application域设置数据
    session.getServletContext().setAttribute("app","application");

    使用实例

    request域获取方式1:
    request域获取方式2:



    session域获取方式1:
    session域获取方式2:


    application域获取方式1:
    application域获取方式2:

    运行结果:

    2.2 URL写法

    在Thymeleaf中路径的写法为 @{路径},同样也可以在路径中添加参数,使用RestFul样式URL。

    准备数据

    model.addAttribute("id",100);
    model.addAttribute("name","lyl");

    添加跳转路径

    @GetMapping("/show2")
    @ResponseBody
    public String showPage2(String id,String name){
        return id+":"+name;
    }

    // @RestFul风格传递参数
    @GetMapping("/show3/{id}/{name}")
    @ResponseBody
    public String showPage3(@PathVariable String id,@PathVariable String name){
        return id + ":" + name;
    }

    使用实例

    百度
    静态参数一
    静态参数二
    动态参数一
    动态参数二
    RestFul风格传递参数


    运行结果

    三、相关配置

    在Springboot配置文件中可以进行Thymeleaf相关配置

    thymeleaf相关配置项
    配置项含义
    spring.thymeleaf.prefix视图前缀
    spring.thymeleaf.suffix视图后缀
    spring.thymeleaf.encoding编码格式
    spring.thymeleaf.servlet.content-type响应类型
    spring.thymeleaf.cache=false页面缓存,配置为false则不启用页面缓存,方便测试

  • 相关阅读:
    openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户
    央企施工企业数字化转型秘诀“一把手负责制”
    力扣(518.377)补7.31
    Linux学习记录——이 基本指令(2)
    DDR模块电路的PCB设计建议
    重温 JavaScript 系列(1):Object.assign、iframe、HashMap、手写 instanceof
    Towhee 每周模型
    剑指 Offer II 013. 二维子矩阵的和(Java)
    为什么计算机对浮点型数字计算存在误差
    软件设计师_数据结构与算法基础_学习笔记
  • 原文地址:https://blog.csdn.net/qq_53317005/article/details/133147800