我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Thymeleaf数据延迟加载怎么实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Thymeleaf数据延迟加载怎么实现

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

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

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

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

1、pom.xml
加入Thymeleaf依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

2、class="lazy" data-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、class="lazy" data-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;

@Controller
public 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<User> queryUsers(){
        System.out.println("模拟查询数据,实际应用中可以直接查询数据库");
        List<User> users = new ArrayList<User>();
        users.add(new User(1,"张三"));
        users.add(new User(2,"李四"));
        users.add(new User(3,"王五"));
        return users;
    }
}

4、class="lazy" data-src/main/resources/templates/test.html 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        table { border-collapse:collapse;}
        td { border: 1px solid #C1DAD7;}
    </style>
</head>
<body>
    <table th:if="${show == true}">
        <tr th:each="user : ${users}">
            <td th:text="${user.id}"></td>
            <td th:text="${user.name}"></td>
        </tr>
    </table>
</body>
</html>

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Thymeleaf数据延迟加载怎么实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linq如何实现延迟加载

小编给大家分享一下Linq如何实现延迟加载,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Linq延迟加载在查询某对象时,实际上你只查询该对象。不会同时自动获取这个
2023-06-17

MyBatis ORM的延迟加载实现原理

MyBatis ORM(Object Relational Mapping,对象关系映射)是一种常用的数据库操作技术,它可以将数据库表中的数据映射到Java对象上。在MyBatis中,延迟加载(Lazy Loading)是一种优化策略,用于
MyBatis ORM的延迟加载实现原理
2024-09-16

请谈谈PHP中的自动加载和延迟加载。(PHP自动加载和延迟加载的实现原理是什么?)

PHP自动加载在需要时加载类,减少启动时间和内存开销。它使用__autoload()函数,或自定义自动加载器实现。延迟加载仅在特定条件下加载类,通过回调函数或第三方库实现。这些技术优化加载时间和内存使用率,但有潜在性能开销和调试困难。最佳实践是仅在必要时使用它们,并仔细考虑性能影响。
请谈谈PHP中的自动加载和延迟加载。(PHP自动加载和延迟加载的实现原理是什么?)
2024-04-02

C#在MEF框架中怎么实现延迟加载部件

这篇文章主要介绍“C#在MEF框架中怎么实现延迟加载部件”,在日常操作中,相信很多人在C#在MEF框架中怎么实现延迟加载部件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#在MEF框架中怎么实现延迟加载部件
2023-07-02

MyBatis中怎么处理延迟加载问题

MyBatis中可以通过使用延迟加载来解决性能问题,延迟加载是指在需要使用某个对象时才会去查询数据库获取该对象的信息。在MyBatis中有两种方式可以实现延迟加载:使用懒加载:在MyBatis的映射文件中配置懒加载,在查询主对象时不会立即查
MyBatis中怎么处理延迟加载问题
2024-03-07

Entity Framework Core延迟加载的方法怎么使用

本文小编为大家详细介绍“Entity Framework Core延迟加载的方法怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Entity Framework Core延迟加载的方法怎么使用”文章能帮助大家解决疑惑,下面跟着小编的
2023-06-29

举例讲解iOS中延迟加载和上拉刷新/下拉加载的实现

lazy懒加载(延迟加载)UITableView 举个例子,当我们在用网易新闻App时,看着那么多的新闻,并不是所有的都是我们感兴趣的,有的时候我们只是很快的滑过,想要快速的略过不喜欢的内容,但是只要滑动经过了,图片就开始加载了,这样用户体
2022-06-02

使用.net core 自带DI框架实现延迟加载功能

使用.NETCore自带DI框架实现延迟加载,可优化应用程序性能和内存使用率。延迟加载推迟对象实例化,可避免不必要的实例化,节省内存和处理时间。在DI框架中,通过指定Lazy类型注册服务来实现延迟加载。使用Lazy注入延迟实例,在首次访问时延迟实例化实际服务。适用于依赖项大、昂贵或可变的情况。
使用.net core 自带DI框架实现延迟加载功能
2024-04-02

CSS属性实现响应式图片延迟加载的方法

CSS属性实现响应式图片延迟加载的方法在网页开发中,经常会遇到需要加载大量图片的情况,特别是在移动设备上。为了提高页面的加载速度和用户体验,延迟加载(lazy loading)图像成为一种常见的优化方法。延迟加载是指在页面加载时,只加载可见
CSS属性实现响应式图片延迟加载的方法
2023-11-18

使用.net core 自带DI框架实现延迟加载功能

在某些情况,我们希望能延迟一个依赖的初始化。如果使用的是autofac,我们可以通过注入Lazy来实现,这篇文章主要介绍了使用.net core 自带DI框架实现延迟加载,需要的朋友可以参考下
2023-02-17

基于rabbitmq延迟插件怎么实现分布式延迟任务

本文小编为大家详细介绍“基于rabbitmq延迟插件怎么实现分布式延迟任务”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于rabbitmq延迟插件怎么实现分布式延迟任务”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
2023-06-26

编程热搜

目录