標簽(空格分隔): springboot thymeleaf adminlte 前端 后臺 html渲染 模板庫 layout
spring boot:用adminlte做前端 中提到過thymeleaf可以結(jié)合adminlte一起使用阿弃,本文做點簡單的介紹
架構(gòu)原理
這里不對thymeleaf本身的實現(xiàn)做說明冈敛,重點放在應用,只結(jié)合它在springmvc架構(gòu)中的位置做點解釋(關(guān)于springmvc的說明請參考我的 springboot : 深入淺出spring mvc)
thymeleaf就是上圖中的一種view的實現(xiàn)绪励,它可以把model中的東西渲染到html中(前提是html使用了thymeleaf的標簽)
簡單的例子
- 添加依賴
pom.xml中添加以下依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
</dependency>
如果使用springboot 2以上钓账,并且要用thymeleaf的layout(有人說layout是thymeleaf最重要的功能)功能毁渗,必須手工添加thymeleaf-layout-dialect依賴(很多教程都忽略了這點)
- 添加模板
把基于adminlte的layout(layout.html, 參考 spring boot:用adminlte做前端)放到src\main\resources\templates 文件夾,
修改兩行代碼
<html>改成<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout">
<div class="content-wrapper">改成
<div class="content-wrapper" layout:fragment="contentWrapper">
這樣adminlte的layout就成為了thymeleaf的一個layout了
- 添加一個測試html
test.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout"
layout:decorate="layout">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
<body class="hold-transition skin-blue sidebar-mini">
<div layout:fragment="contentWrapper">
<section class="content">
<h4>Hello World</h4>
</section>
</div>
</body>
</html>
其中關(guān)鍵的代碼有兩行
layout:decorate="layout"
這行代碼告訴thymeleaf灌诅,渲染test.html的時候要用模板layout(src\main\resources\templates下面的layout.html文件)進行渲染
<div layout:fragment="contentWrapper">
這行代碼告訴thymeleaf,把<div layout:fragment="contentWrapper">中的內(nèi)容要替換掉layout"layout:fragment="contentWrapper" 部分的內(nèi)容
準備好這些之后啟動spring boot含末,請求 test.html猜拾,就能看到結(jié)果中明顯多出layout.html中的一些東西,也就是說請求的是test.html佣盒,但是獲得的是test.html+layout.html的東西挎袜。
本文使用我另外的文章 老程序員的一點套路之開源學習 里面介紹的方法進行學習