spring-boot-starter-thymeleaf加載外部html文件方式
在Spring MVC中,我們可以使用Thymeleaf模板引擎來實現(xiàn)加載外部HTML文件。
1.Thymeleaf介紹
Thymeleaf是一種現(xiàn)代化的服務(wù)器端Java模板引擎,用于構(gòu)建漂亮、可維護且易于測試的動態(tài)Web應(yīng)用程序。它適用于與Spring框架集成,并且可以與Spring MVC或Spring Boot等框架一起使用。
Thymeleaf模板引擎允許開發(fā)人員在HTML頁面中使用模板表達式,這些表達式可以動態(tài)地替換頁面中的內(nèi)容。它提供了豐富的表達式語法,可以從后端Java代碼中獲取動態(tài)數(shù)據(jù),并在模板中進行顯示。
與其他模板引擎相比,Thymeleaf具有以下特點:
- 自然的模板語法:Thymeleaf的模板語法非常類似于HTML,易于理解和編寫。
- 靜態(tài)預(yù)覽:在開發(fā)過程中,可以直接在瀏覽器中預(yù)覽Thymeleaf模板,無需啟動整個應(yīng)用程序。
- 強大的功能:Thymeleaf提供了豐富的標簽和表達式,可以處理循環(huán)、條件判斷、國際化等常見的模板需求。
- 安全:Thymeleaf會對輸出的內(nèi)容進行自動轉(zhuǎn)義,以防止XSS攻擊。
2.springboot使用thymeleaf
使用spring-boot-starter-thymeleaf可以非常方便地使用thymeleaf,下面來看詳細的例子。
2.1.引入spring-boot-starter-thymeleaf依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
2.2.創(chuàng)建controller
@Controller public class H5Controller { @GetMapping("/external") public String loadExternalHtml() { return "index"; } }
在上述示例中,index()方法處理根路徑的GET請求,并返回"index"字符串。這意味著它將返回名為index.html的Thymeleaf模板。
現(xiàn)在,創(chuàng)建一個名為index.html的Thymeleaf模板,放置在src/main/resources/templates目錄下(默認的Thymeleaf模板目錄)
如果想重新定義模板目錄路徑,只需要修改application.properties文件
spring.thymeleaf.prefix=file:/F:/projects/eb/resources/html5/
2.3.創(chuàng)建簡易html文件
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Index Page</title> </head> <body> <h1>This is the index page</h1> </body> </html>
2.4.瀏覽器訪問
在瀏覽器輸入localhost:8080/index.html,即可看到html內(nèi)容。
2.5.參數(shù)化訪問html文件
假設(shè)Thymeleaf目錄下有很多文件,我們希望客戶端能通過參數(shù)來選擇加載某個文件,那么我們可以修改controller的代碼。
@Controller public class H5Controller { @GetMapping("/external") public String loadExternalHtml(@RequestParam String resource) { return resource; } }
瀏覽器重新輸入(可以根據(jù)需要訪問特定文件):
http://localhost:8080/external?resource=hello
2.6熱加載文件
web項目有一個特殊要求,就是希望程序在運行器可以動態(tài)加載html文件。使用thymeleaf,我們可以自動實現(xiàn)。
在程序運行期間,我們往/templates目錄下新增文件,在瀏覽器輸入地址,即可訪問新增的文件。
2.7熱更新文件
如果已經(jīng)添加的html文件,需要在程序運行期間修改內(nèi)容呢?thymeleaf同樣也支持。只需修改application.properties文件
spring.thymeleaf.cache=false
相關(guān)代碼可以調(diào)試AbstractCachingViewResolver類,由圖可知,如果spring.thymeleaf.cache設(shè)置為true,則默認緩存數(shù)量為1024個文件。
為false的話,則不緩存,每次都重新創(chuàng)建View,因此,每次加載(不管有沒有修改)都是創(chuàng)建新的文件。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot實現(xiàn)網(wǎng)頁消息推送的5種方法小結(jié)
項目開發(fā)中,實時消息推送已成為提升用戶體驗的關(guān)鍵技術(shù),本文將詳細介紹SpringBoot中實現(xiàn)網(wǎng)頁消息推送的幾種主流方案,希望對大家有所幫助2025-03-03SpringSecurity+Redis認證過程小結(jié)
這篇文章主要介紹了SpringSecurity+Redis認證過程小結(jié),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01SpringBoot如何使用applicationContext.xml配置文件
這篇文章主要介紹了SpringBoot使用applicationContext.xml配置文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06springboot整合nacos的入門Demo及Nacos安裝部署
Nacos?提供了一組簡單易用的特性集,幫助您快速實現(xiàn)動態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理,Nacos?致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù),這篇文章主要介紹了springboot整合nacos的入門Demo,需要的朋友可以參考下2024-01-01