日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

【模板引擎】Springboot整合ThymeleafThymeleaf基本语法

發布時間:2025/5/22 javascript 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【模板引擎】Springboot整合ThymeleafThymeleaf基本语法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Thymeleaf介紹

thymeleaf是一個XML/XHTML/HTML5模板引擎,可用于Web與非Web環境中的應用開發。它是一個開源的Java庫,基于Apache License 2.0許可,由Daniel Fernández創建,該作者還是Java加密庫Jasypt的作者。
Thymeleaf提供了一個用于整合Spring MVC的可選模塊,在應用開發中,你可以使用Thymeleaf來完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目標在于提供一種可被瀏覽器正確顯示的、格式良好的模板創建方式,因此也可以用作靜態建模。你可以使用它創建經過驗證的XML與HTML模板。相對于編寫邏輯或代碼,開發者只需將標簽屬性添加到模板中即可。接下來,這些標簽屬性就會在DOM(文檔對象模型)上執行預先制定好的邏輯。

它的特點便是:開箱即用,Thymeleaf允許您處理六種模板,每種模板稱為模板模式:
* XML
* 有效的XML
* XHTML
* 有效的XHTML
* HTML5
* 舊版HTML5
所有這些模式都指的是格式良好的XML文件,但Legacy HTML5模式除外,它允許您處理HTML5文件,其中包含獨立(非關閉)標記,沒有值的標記屬性或不在引號之間寫入的標記屬性。為了在這種特定模式下處理文件,Thymeleaf將首先執行轉換,將您的文件轉換為格式良好的XML文件,這些文件仍然是完全有效的HTML5(實際上是創建HTML5代碼的推薦方法)。

另請注意,驗證僅適用于XML和XHTML模板。
然而,這些并不是Thymeleaf可以處理的唯一模板類型,并且用戶始終能夠通過指定在此模式下解析模板的方法和編寫結果的方式來定義他/她自己的模式。這樣,任何可以建模為DOM樹(無論是否為XML)的東西都可以被Thymeleaf有效地作為模板處理。

Springboot整合thymeleaf

使用springboot 來集成使用Thymeleaf可以大大減少單純使用thymleaf的代碼量
pom.xml依賴

<!-- 版本控制 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version></parent><dependencies><!--web起步依賴--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--thymeleaf配置--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency></dependencies>

啟動類ThymeleafApplication

@SpringBootApplication public class ThymeLeafApplication {public static void main(String[] args) {SpringApplication.run(ThymeLeafApplication.class,args);} }

application.yml
設置thymeleaf的緩存設置,設置為false。默認加緩存的,用于測試。

spring:thymeleaf:cache: false

創建controller用于測試后臺 設置數據到model中。

@Controller @RequestMapping("/test") public class TestController { /** * 訪問/test/hello 跳轉到demo1頁面 * @param model * @return */ @RequestMapping("/hello") public String hello(Model model){ model.addAttribute("hello","你好!趙麗穎!!!"); return "demo"; } }

創建html,在resources中創建templates目錄,在templates目錄創建 demo.html,代碼如下:

<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head><title>Thymeleaf的入門</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <body> <!--輸出hello數據--> <p th:text="${hello}"></p> </body> </html>
解釋:

<html xmlns:th="http://www.thymeleaf.org"> :這句聲明使用thymeleaf標簽
<p th:text="${hello}"></p> :這句使用 th:text="${變量名}" 表示 使用thymeleaf獲取文本數據,類似于EL表達式。

啟動系統,并在瀏覽器訪問

http://localhost:8080/demo/hello

Thymeleaf基本語法

th:action 定義后臺控制器路徑,類似 <form> 標簽的action屬性。
例如:

<form th:action="@{/test/hello}" > <input th:type="text" th:name="id"> <button>提交</button> </form>

th:each對象遍歷,功能類似jstl中的 <c:forEach> 標簽。
Controller添加數據

/** * 訪問/test/hello 跳轉到demo1頁面 * @param model * @return */ @RequestMapping("/hello") public String hello(Model model){model.addAttribute("hello","hello welcome"); //集合數據 List<User> users = new ArrayList<User>(); users.add(new User(1,"張三","深圳")); users.add(new User(2,"李四","北京")); users.add(new User(3,"王五","武漢")); model.addAttribute("users",users); return "demo1"; }

頁面輸出

<table> <tr><td>下標</td> <td>編號</td> <td>姓名</td> <td>住址</td> </tr> <tr th:each="user,userStat:${users}"> <td>下標:<span th:text="${userStat.index}"></span>, </td> <td th:text="${user.id}"></td> <td th:text="${user.name}"></td> <td th:text="${user.address}"></td> </tr> </table>

Map輸出

//Map定義 Map<String,Object> dataMap = new HashMap<String,Object>(); dataMap.put("No","123"); dataMap.put("address","深圳"); model.addAttribute("dataMap",dataMap);

頁面輸出

<div th:each="map,mapStat:${dataMap}"> <div th:text="${map}"></div> key:<span th:text="${mapStat.current.key}"></span><br/> value:<span th:text="${mapStat.current.value}"></span><br/> </div>

數組輸出

//存儲一個數組 String[] names = {"張三","李四","王五"}; model.addAttribute("names",names);

頁面輸出

<div th:each="nm,nmStat:${names}"> <span th:text="${nmStat.count}"></span><span th:text="${nm}"></span> </div>

Date輸出,后臺添加日期

//日期 model.addAttribute("now",new Date());

頁面輸出

<div><span th:text="${#dates.format(now,'yyyy-MM-dd hh:ss:mm')}"></span> </div>

th:if條件

//if條件 model.addAttribute("age",22);

頁面輸出

<div><span th:if="${(age>=18)}">終于長大了!</span> </div>

th:fragment 可以定義一個獨立的模塊,創建一個footer.html代碼如下:

<html xmlns:th="http://www.thymeleaf.org"> <head><meta http-equiv="Content-Type" content="text/html;charset=charset=utf-8"> <title>fragment</title> </head> <body> <div id="C" th:fragment="copy" > 關于我們<br/> </div> </body>

th:include 可以直接引入 th:fragment ,在demo1.html中引入如下代碼:

<div id="A" th:include="footer::copy"></div>

總結

以上是生活随笔為你收集整理的【模板引擎】Springboot整合ThymeleafThymeleaf基本语法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 女人裸体免费网站 | 黄色的网站免费看 | 精品无码m3u8在线观看 | 日韩在线视频网站 | 久久久久久久国产精品视频 | 爱爱三级视频 | 久久高清内射无套 | 免费av电影网站 | 精品不卡一区二区 | 欧美午夜理伦三级在线观看 | 午夜视频导航 | 三级免费毛片 | 日批黄色 | 国产黄色观看 | 免费一级特黄3大片视频 | 性综艺节目av在线播放 | 成人免费性视频 | 中文字幕9 | 一本久道久久 | 高清欧美性猛交xxxx黑人猛交 | 俺也去五月婷婷 | 久久久99精品国产一区二区三区 | 一级片视频免费 | 久草福利在线视频 | 精品无码久久久久 | 欧美福利第一页 | 国产乱了高清露脸对白 | 老鸭窝视频在线观看 | 日韩少妇 | 中文字幕无码乱人伦 | 久久日本精品字幕区二区 | 51精品 | 欧美欧美欧美 | 久久国产精品一区二区三区 | 日本中文字幕在线观看视频 | 激情xxxx| 久久久高清 | 四虎在线免费观看 | 国产精品嫩草影院精东 | 亚洲成人激情在线 | 欧美成人亚洲 | 久久手机看片 | 日韩av一二三 | av中文字幕一区 | 成人在线免费视频 | 亚洲欧美日韩在线一区 | 狠狠躁| 亚洲一区 中文字幕 | 一本加勒比hezyo黑人 | a级片在线 | 亚洲AV成人无码精品久久盆瓶 | 国产吞精囗交免费视频网站 | 蜜臀av88| 最新中文字幕在线播放 | 色av综合网 | 少妇被爽到高潮动态图 | 久久噜噜噜| 国产成人精品a视频 | 亚洲视频在线播放免费 | 夜夜se| 国产二级视频 | 精品国产免费人成在线观看 | 日韩一区二区高清视频 | 艳妇乳肉豪妇荡乳av | www.欧美亚洲 | 欧美性做爰毛片 | 国产在线高潮 | 欧美精品一二 | 成人国产av一区二区三区 | 能免费看18视频网站 | 黄色视屏在线播放 | 国产精品电影一区 | 男女操操视频 | 国产精品日日摸夜夜爽 | 色婷婷综合久久久久中文 | 91免费在线视频 | 亚洲综合在线成人 | 三级精品在线观看 | 久久久久久久无码 | 国产欧美专区 | 欧美性猛交ⅹxxx乱大交3 | 欧美变态另类刺激 | 97精品人妻一区二区 | 在线天堂在线 | 欧美日韩另类一区 | 国产伦一区二区三区 | 欧美成人乱码一区二区三区 | 精品久久久久久亚洲综合网站 | 成人免费无遮挡无码黄漫视频 | 国产99久久九九精品无码免费 | 欧美日韩精品一区二区三区蜜桃 | 日韩av午夜 | 婷婷色小说 | av中文字幕一区 | www.五月天婷婷 | 婷婷亚洲天堂 | 草青青视频 | ww久久| 国产一区在线视频 |