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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Thymeleaf 模板 springboot集成使用

發布時間:2025/7/25 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Thymeleaf 模板 springboot集成使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.Thymeleaf是什么?

? ? ? ? ??簡單說, Thymeleaf 是一款用于渲染XML/XHTML/HTML5內容的模板引擎,類似我之前用過的FreeMarker 。由于它支持 html 原型,然后在 html 標簽里

? ? ?通過增加額外的屬性來達到模板+數據的展示方式。瀏覽器解釋 html 時會忽略未定義的標簽屬性,所以 thymeleaf 的模板可以靜態地運行;當有數據返回到頁面時,Thymeleaf 標簽會動態地替換掉靜態內容,使頁面動態顯示。

優勢:1.Thymeleaf?開箱即用的特性。它提供標準和spring標準兩種方言。

? ? ? ? ? ?2.Thymeleaf 提供spring標準方言和一個與 SpringMVC 完美集成的可選模塊,可以快速的實現表單綁定、屬性編輯器、國際化等功能。

1.添加依賴。

2.html 頁面需添加:

<html xmlns:th="http://www.thymeleaf.org">

二.基本使用.? ? ??

? ? ?1.定義和引用模板

? ? ? ?日常開發中,我們經常會將導航欄,頁尾,菜單等部分提取成模板供其它頁面使用。

? ? ? ?在Thymeleaf?中,我們可以使用th:fragment屬性來定義一個模板。

? ? ? ?我們可以新建一個簡單的頁尾模板,如:/WEB-INF/templates/footer.html,內容如下:



? ? ?上面定義了一個叫做copyright的片段,接著我們可以使用th:include或者th:replace屬性來使用它:

? ? ? th:include 和 th:replace區別

? ? ?th:include 是加載模板的內容,而th:replace則會替換當前標簽為模板中的標簽

三.其他常見,字面量,對象,集合等的應用

??后臺存入了測試數據

@PostMapping("/greet")
public ModelAndView greetingSubmit(@ModelAttribute(value="greeting") Greeting greeting) {
ModelAndView mov = new ModelAndView("result");
greeting.setNow(new Date());
greeting.setRole("admin");
ArrayList<Greeting> list = new ArrayList<>();
list.add(greeting);
list.add(greeting);
list.add(greeting);
mov.addObject("greeting",greeting);
mov.addObject("name","bin");
mov.addObject("execMode","execMode");
mov.addObject("list",list);
return mov;
}

?

頁面的獲取方法

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Getting Started: Handling Form Submission</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Result</h1>
<!--/*@thymesVar id="greeting" type="com.zto.quickstart.model.Greeting"*/-->

<!--bean值替換 -->
<div th:object="${greeting}">
<p th:text="'id: ' + *{id}"/>
<p th:text="'content: ' + *{content}"/>

<!--日期格式 -->
<p th:text="'content: ' + ${#dates.format(greeting.now, 'yyyy-MM-dd')}">2017-12-01</p>

<!--字符串替換 -->
<span th:text="'Welcome , '+ ${name} +'!'"/>

<!--運算符/條件-->
<p th:if="${greeting.id} &gt; 1" />
<p th:text ="'Execution mode is ' + ( (${execMode} == 'dev')? 'Development' : 'Production')"/>

<!--Thymeleaf同樣支持多路選擇Switch結構-->
<div th:switch="${greeting.role}">
<p th:case="'admin'">User is admin</p>
<p th:case="#{roles.manager}">User is a manager</p>
<!--默認屬性default可以用*表示-->
<p th:case="*">這里的內容都會輸出</p>
</div>
<table>
<tr>
<th>id</th>
<th>content</th>
<th>now</th>
</tr>
<tr th:each="list : ${greeting}">
<td th:text="${greeting.id}">Onions</td>
<td th:text="${greeting.content}">2.41</td>
<td th:text="${#dates.format(greeting.now, 'yyyy-MM-dd')}">8</td>
</tr>
</table>

<h4>Thymeleaf提供了一系列Utility對象(內置于Context中),可以通過#直接訪問</h4>
<!--<h5>#dates日期日期格式化</h5>-->
<!--${#dates.format(date, 'dd/MMM/yyyy HH:mm')}-->
<!--${#dates.arrayFormat(datesArray, 'dd/MMM/yyyy HH:mm')}-->
<!--${#dates.listFormat(datesList, 'dd/MMM/yyyy HH:mm')}-->
<!--${#dates.setFormat(datesSet, 'dd/MMM/yyyy HH:mm')}-->

<!--date-->
<h5>#dates創建日期</h5>
<p th:text="${#dates.createNow()}"></p>
<p th:text="${#dates.createToday()}"></p>

<!--String-->
<h5>String判斷字符串是否為空</h5>
<p th:text="${#strings.isEmpty(name)}"></p>
<h5>String判斷內對象是否為空</h5>
<p th:text="${#strings.listIsEmpty(list)}"></p>
<!--${#strings.arrayIsEmpty(nameArr)}-->
<!--${#strings.setIsEmpty(nameSet)}-->
<p th:text="${#strings.startsWith(name,'bin')}"></p>
<p th:text="${#strings.endsWith(name,'bin')}"></p>
<h5>String判斷內長度</h5>
<p th:text="${#strings.length(list)}"></p>
<h5>String判斷equals</h5>
<p th:text="${#strings.equals(name)}"></p>

<a href="/greeting">Submit another message</a>

<div th:include="footer :: copyright"></div>
</div>

</body>

頁面展示的效果

?

四.表單中的使用

</head>
<body>
<h4>測試表單</h4>
<!--/*@thymesVar id="greeting" type="com.zto.quickstart.model.Greeting"*/-->
<!--/*@thymesVar id="Greeting" type=""*/-->
<form th:action="@{/greet}" th:object="${greeting}" method="post" th:method="post">
<!--bean值替換 -->
<input type="text" th:field="${greeting.id}"/>
<input type="text" th:field="*{content}"/>
<input type="submit"/>

</form>
</body>
</html>

其中th:object="${greeting}"指定了對象屬性綁定。與后臺控制器接受的對象一致,如下:

?

@PostMapping("/greet")
public ModelAndView greetingSubmit(@ModelAttribute(value="greeting") Greeting greeting) {
...
return mov;
}

?

轉載于:https://www.cnblogs.com/xwy6/p/8317497.html

總結

以上是生活随笔為你收集整理的Thymeleaf 模板 springboot集成使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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