簡(jiǎn)單了解Thymeleaf語(yǔ)法 數(shù)據(jù)延遲加載使用實(shí)例
在處理模板時(shí),可以由模板邏輯決定是否加載數(shù)據(jù),以提高性能。
在Spring Boot控制器中設(shè)置數(shù)據(jù)時(shí),使用LazyContextVariable可以實(shí)現(xiàn)這功能。
開發(fā)環(huán)境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8
新建一個(gè)名稱為demo的Spring Boot項(xiàng)目。
1、pom.xml
加入Thymeleaf依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
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;
@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("模擬查詢數(shù)據(jù),實(shí)際應(yīng)用中可以直接查詢數(shù)據(jù)庫(kù)");
List<User> users = new ArrayList<User>();
users.add(new User(1,"張三"));
users.add(new User(2,"李四"));
users.add(new User(3,"王五"));
return users;
}
}
4、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 ,頁(yè)面沒顯示數(shù)據(jù),控制臺(tái)沒輸出信息。
http://localhost:8080/true ,頁(yè)面顯示數(shù)據(jù),控制臺(tái)輸出"模擬查詢數(shù)據(jù),實(shí)際應(yīng)用中可以直接查詢數(shù)據(jù)庫(kù)”。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解JVM的內(nèi)存對(duì)象介紹[創(chuàng)建和訪問]
這篇文章主要介紹了JVM的內(nèi)存對(duì)象介紹[創(chuàng)建和訪問],文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
SpringCloudGateway?Nacos?GitlabRunner全自動(dòng)灰度服務(wù)搭建發(fā)布
這篇文章主要為大家介紹了SpringCloudGateway?Nacos?GitlabRunner全自動(dòng)灰度服務(wù)搭建和發(fā)布實(shí)戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
java servlet手機(jī)app訪問接口(二)短信驗(yàn)證
這篇文章主要介紹了java servlet手機(jī)app訪問接口(二),短信驗(yàn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
使用Java Servlet生成動(dòng)態(tài)二維碼的實(shí)現(xiàn)步驟
在現(xiàn)代互聯(lián)網(wǎng)時(shí)代,二維碼廣泛應(yīng)用于各個(gè)領(lǐng)域,包括支付、認(rèn)證、信息傳遞等,在Web開發(fā)中,通過Java Servlet生成動(dòng)態(tài)二維碼是一個(gè)常見的需求,本文將介紹如何使用Java Servlet結(jié)合Google的ZXing庫(kù)生成動(dòng)態(tài)二維碼,需要的朋友可以參考下2023-11-11
Springboot支持Emoji表情的實(shí)現(xiàn)方法
本文主要介紹了Springboot 支持Emoji 表情,本篇的實(shí)現(xiàn)方式是僅需后端處理,具有一定的參考價(jià)值,需要的朋友可以參考一下。2021-07-07

