Jsp ialah teknologi templat terawal, digunakan untuk memproses lapisan paparan dan menggunakannya untuk templat paparan data
Struktur B S:
B: Pelayar : Digunakan untuk memaparkan data dan menghantar permintaan, tanpa keupayaan memproses
Hantar permintaan untuk mengakses a.jsp, a.jsp menjadi Servlet pada bahagian pelayan, dan mengembalikan data output kepada penyemak imbas, menyemak imbas Anda boleh lihat data hasil dalam penyemak imbas. Terjemahan terakhir jsp juga merupakan teknologi templat
, anda boleh menggunakannya sebagai pengganti rentetan. Contohnya: di sini {data} terdapat rentetan Ia digantikan dengan nilai tetap dan nilai lain, tetapi penggantian ini mempunyai beberapa fungsi tambahan, memproses kandungan lapisan paparan melalui teknologi templat
Contoh pertama:
pom.xml: Kebergantungan Thymeleaf:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.1</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.bjpowernode</groupId> <artifactId>027-thymeleaf-first</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <java.version>1.8</java.version> </properties> <dependencies> <!--模板引擎起步依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!--web起步依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
Cipta Pengawal: HelloThymeleafController:
package com.bjpowernode.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest; @Controller public class HelloThymeleafController { @RequestMapping("/hello") public String helloThymeleaf(HttpServletRequest request){ //添加数据到request作用域,模板引擎可以从request中获取数据 request.setAttribute("data","欢迎使用Thymeleaf模板引擎"); //指定视图 模板引擎使用的页面(html) //逻辑名称 return "hello"; } }
templat: digunakan untuk menyimpan fail paparan yang digunakan dalam templat , templat yang digunakan oleh enjin templat diletakkan di bawah direktori templat:
Buat hello.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>hello html</title> </head> <body> <h4>使用Thymeleaf的例子</h4> <!--使用模板th:text=""获取数据--> <p th:text="${data}">想显示数据</p> </body> </html>
Jalankan kelas permulaan utama Aplikasi:
package com.bjpowernode; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
Boleh digunakan dalam hello Ditambah pada .html: Ke dalam teg yang tidak dapat diselesaikan menjadi popular dan tiada mesej gesaan semasa menulis
xmlns:th="http://www.thymeleaf.org" Dalam teg, tulis ke lagi Pada masa itu, akan ada gesaan untuk merakam
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>hello html</title> </head> <body> <h4>使用Thymeleaf的例子</h4> <!--使用模板th:text="${data}"获取后端request的作用域中的数据,把data数据替换文本,text表示取数据--> <p th:text="${data}">想显示数据</p> <p th:text="${data}">显示</p> </body> </html>
Gunakan Model:
Dalam Pengawal:
package com.bjpowernode.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import javax.servlet.http.HttpServletRequest; @Controller public class HelloThymeleafController { @RequestMapping("/hello") public String helloThymeleaf(Model model, HttpServletRequest request){ //添加数据到request作用域,模板引擎可以从request中获取数据 request.setAttribute("data","欢迎使用Thymeleaf模板引擎"); //使用model和request作用域是一样的 实际上model中的数据就是放到request作用域中的 model.addAttribute("mydata","model中的数据"); //指定视图 模板引擎使用的页面(html) //逻辑名称 return "hello"; } }
hello.html:
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>hello html</title> </head> <body> <h4>使用Thymeleaf的例子</h4> <!--使用模板th:text="${data}"获取后端request的作用域中的数据,把data数据替换文本,text表示取数据--> <p th:text="${data}">想显示数据</p> <p th:text="${mydata}">显示</p> </body> </html>
aplikasi fail konfigurasi speingboot.properties: Tetapan berkaitan yang biasa digunakan bagi enjin templat pada asasnya, tetapan adalah lalai:
# Semasa peringkat pembangunan, matikan penghantaran templat, biarkan pengubahsuaian berkuat kuasa serta-merta Apabila ditetapkan kepada benar, cache templat digunakan Apabila diakses untuk kali kedua, data dalam memori digunakan dan templat tidak lagi dihuraikan 🎜>spring.thymeleaf.cache=false
#Format Pengekodan
spring.thymeleaf.encoding=UTF-8
#Jenis templat (lalai ialah html, templat ialah fail html, yang bukan sahaja menyokong halaman web sebagai templat tetapi turut menyokong kategori lain)
spring.thymeleaf.model= HTML
#Awalan templat: Lalai ialah laluan kelas bagi direktori classpath:/templates
spring.thymeleaf.prefix=classpath :/templates/
#Suffix
spring.thymeleaf.suffix=.html
Atas ialah kandungan terperinci Analisis contoh enjin templat SpringBoot Thymeleaf. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!