SpringBoot---Thymeleaf 模板引擎
阿新 • • 發佈:2018-12-16
一、使用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}",此標籤不太優雅,一般用的比較少。