1. 程式人生 > >SpringBoot---Thymeleaf 模板引擎

SpringBoot---Thymeleaf 模板引擎

一、使用Thymeleaf模板引擎開發

    1.在pom.xml檔案中引入Thymeleaf依賴   

<!--引入Thymeleaf 模板引擎-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

    2.與上一部落格相同,建立controller和model資料夾等,具體去看上一篇部落格。

    3.templates/index.html

<!DOCTYPE html>
<html xmlns:th="http://www.w3.org/1999/xhtml">
<head lang="en">
	<title>Spring Boot Demo - FreeMarker</title>
	
	<link href="/css/index.css" rel="stylesheet" />
	
</head>
<body>
	<center>
		<img src="/images/logo.png" />
		<h1 id="title" th:text="${title}"></h1>
	</center>
	
	<script type="text/javascript" src="/webjars/jquery/2.1.4/jquery.min.js"></script>
	
	<script>
		$(function(){
			$('#title').click(function(){
				alert('點選了');
			});
		})
	</script>
</body>
</html>

    3.http://localhot:8888/web/index 訪問資源

二、Thymeleaf 常用標籤如下:

關鍵字      功能介紹        案例
th:id      替換id          <input th:id="'xxx' + ${collect.id}"/>
th:text     文字替換        <p th:text="${collect.description}">description</p>
th:utext    支援html的文字替換   <p th:utext="${htmlcontent}">conten</p>
th:object    替換物件        <div th:object="${session.user}">
th:value    屬性賦值        <input th:value="${user.name}" />
th:with    變數賦值運算        <div th:with="isEven=${prodStat.count}%2==0"></div>
th:style    設定樣式            th:style="'display:' + @{(${sitrue} ? 'none' : 'inline-block')} + ''"
th:onclick    點選事件          th:onclick="'getCollect()'"
th:each    屬性賦值            tr th:each="user,userStat:${users}">
th:if    判斷條件            <a th:if="${userId == collect.userId}" >
th:unless    和th:if判斷相反        <a th:href="@{/login}" th:unless=${session.user != null}>Login</a>
th:href    連結地址              <a th:href="@{/login}" th:unless=${session.user != null}>Login</a> />
th:switch    多路選擇 配合th:case 使用    <div th:switch="${user.role}">
th:case    th:switch的一個分支        <p th:case="'admin'">User is an administrator</p>
th:fragment    佈局標籤,定義一個程式碼片段,方便其它地方引用    <div th:fragment="alert">
th:include    佈局標籤,替換內容到引入的檔案    <head th:include="layout :: htmlhead" th:with="title='xx'"></head> />
th:replace    佈局標籤,替換整個標籤到引入的檔案    <div th:replace="fragments/header :: title"></div>
th:selected    selected選擇框 選中    th:selected="(${xxx.id} == ${configObj.dd})"
th:src    圖片類地址引入          <img class="img-responsive" alt="App Logo" th:src="@{/img/logo.png}" />
th:inline    定義js指令碼可以使用變數    <script type="text/javascript" th:inline="javascript">
th:action    表單提交的地址        <form action="subscribe.html" th:action="@{/subscribe}">
th:remove    刪除某個屬性        <tr th:remove="all"> 
                    1.all:刪除包含標籤和所有的孩子。
                    2.body:不包含標記刪除,但刪除其所有的孩子。
                    3.tag:包含標記的刪除,但不刪除它的孩子。
                    4.all-but-first:刪除所有包含標籤的孩子,除了第一個。
                    5.none:什麼也不做。這個值是有用的動態評估。
th:attr    設定標籤屬性,多個屬性可以用逗號分隔    比如 th:attr="
[email protected]
{/image/aa.jpg},title=#{logo}",此標籤不太優雅,一般用的比較少。