千家信息网

Thymeleaf数据延迟加载怎么实现

发表于:2024-12-04 作者:千家信息网编辑
千家信息网最后更新 2024年12月04日,这篇文章主要介绍"Thymeleaf数据延迟加载怎么实现",在日常操作中,相信很多人在Thymeleaf数据延迟加载怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2024年12月04日Thymeleaf数据延迟加载怎么实现

这篇文章主要介绍"Thymeleaf数据延迟加载怎么实现",在日常操作中,相信很多人在Thymeleaf数据延迟加载怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Thymeleaf数据延迟加载怎么实现"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在处理模板时,可以由模板逻辑决定是否加载数据,以提高性能。
在Spring Boot控制器中设置数据时,使用LazyContextVariable可以实现这功能。

开发环境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8

新建一个名称为demo的Spring Boot项目。

1、pom.xml
加入Thymeleaf依赖

            org.springframework.boot            spring-boot-starter-thymeleaf        

2、src/main/java/com/example/demo/User.java

package com.example.demo;public class User {    Integer id;    String name;    public User(Integer id, String name) {        this.id = id;        this.name = name;    }    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}

3、src/main/java/com/example/demo/TestController.java

package com.example.demo;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.thymeleaf.context.LazyContextVariable;import java.util.ArrayList;import java.util.List;@Controllerpublic class TestController {    @RequestMapping("/{show}")    public String test(Model model, @PathVariable("show") boolean show){        model.addAttribute("users", new LazyContextVariable() {            @Override            protected Object loadValue() {                return queryUsers();            }        });        model.addAttribute("show", show);        return "test";    }    private List queryUsers(){        System.out.println("模拟查询数据,实际应用中可以直接查询数据库");        List users = new ArrayList();        users.add(new User(1,"张三"));        users.add(new User(2,"李四"));        users.add(new User(3,"王五"));        return users;    }}

4、src/main/resources/templates/test.html

        Title        

浏览器访问:
http://localhost:8080/false ,页面没显示数据,控制台没输出信息。
http://localhost:8080/true ,页面显示数据,控制台输出"模拟查询数据,实际应用中可以直接查询数据库"。

到此,关于"Thymeleaf数据延迟加载怎么实现"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0