1. 程式人生 > >Spring Boot中使用thymeleaf以及各種取值,判斷,選擇,擷取等方式

Spring Boot中使用thymeleaf以及各種取值,判斷,選擇,擷取等方式

Spring Boot中使用thymeleaf

Spring Boot支援FreeMarker、Groovy、Thymeleaf和Mustache四種模板解析引擎,官方推薦使用Thymeleaf。

spring-boot-starter-thymeleaf

在Spring Boot中使用Thymeleaf只需在pom中加入Thymeleaf的starter即可:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

在Spring Boot 1.5.9.RELEASE版本中,預設的Thymeleaf版本為2.1.6.RELEASE版本,這裡推薦使用3.0以上版本。在pom中將Thymeleaf的版本修改為3.0.2.RELEASE:

<properties>
    <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
    <thymeleaf-layout-dialect.version>2.0.1</thymeleaf-layout-dialect.version>
</properties>

在Spring Boot中,預設的html頁面地址為src/main/resources/templates,預設的靜態資源地址為src/main/resources/static。

Thymeleaf預設配置

在Spring Boot配置檔案中可對Thymeleaf的預設配置進行修改:

#開啟模板快取(預設值:true)
spring.thymeleaf.cache=true 
#Check that the template exists before rendering it.
spring.thymeleaf.check-template=true 
#檢查模板位置是否正確(預設值:true)
spring.thymeleaf.check-template-location=true
#Content-Type的值(預設值:text/html)
spring.thymeleaf.content-type=text/html
#開啟MVC Thymeleaf檢視解析(預設值:true)
spring.thymeleaf.enabled=true
#模板編碼
spring.thymeleaf.encoding=UTF-8
#要被排除在解析之外的檢視名稱列表,用逗號分隔
spring.thymeleaf.excluded-view-names=
#要運用於模板之上的模板模式。另見StandardTemplate-ModeHandlers(預設值:HTML5)
spring.thymeleaf.mode=HTML5
#在構建URL時新增到檢視名稱前的字首(預設值:classpath:/templates/)
spring.thymeleaf.prefix=classpath:/templates/
#在構建URL時新增到檢視名稱後的字尾(預設值:.html)
spring.thymeleaf.suffix=.html
#Thymeleaf模板解析器在解析器鏈中的順序。預設情況下,它排第一位。順序從1開始,只有在定義了額外的TemplateResolver Bean時才需要設定這個屬性。
spring.thymeleaf.template-resolver-order=
#可解析的檢視名稱列表,用逗號分隔
spring.thymeleaf.view-names=

一般開發中將spring.thymeleaf.cache設定為false,其他保持預設值即可。

頁面取值

迴圈取值:

       <tr th:each="list,stat : ${accountList}">
            <td th:text="${stat.count}"></td>  //序號,1,2,3,4,5
            <td th:text="${list.account}"></td>
            <td th:text="${list.name}"></td>
            <td th:text="${list.password}"></td>
            <td th:text="${list.accountType}"></td>
            <td th:text="${list.tel}"></td>
        </tr>

迴圈中狀態,男女,為0,1時,改為中文。

status為。0,1時

       <td th:switch="${status}">
		<span th:case="0">否</span>
		<span th:case="1">是</span>
		</td>

一般字串取值:

<td th:text="${list.account}"></td>
<td>[[${list.account}]]</td>

<span th:text="${name}></span>
<span>[[${name}]]</span>

標籤屬性取值
input標籤的value值,id取值,屬性取值前面都加th:

<input type="text" name="adminname" th:value="${adminname}"    th:id="${id}" >

標籤迴圈

標籤迴圈,以及迴圈選中,標籤屬性取值

     <ul>
           <li id="rolehtml">
		<span th:each="list:${rolelist}"><input type="checkbox"  th:checked="${list.remark1 eq 'checked'}" name="menuId" th:data-id="${list.id}" th:id="${list.id}" th:value="${list.id}" ><label th:for="${list.id}" th:text="${list.rolename}" class="qx-lable">值111</lable></span>
			</li>
	</ul>
	<select name="compId" id="compId">
	       <option  th:each="list:${listc}" th:value="${list.compId}" th:selected="${admin.compId eq list.compId}" th:text="${list.compName }"></option>
    </select>

select選中

迴圈選中參考上面。

<select  class="form-control" id="flag" name="flag">
					<option value="0" th:selected="${admin.flag==0}">否</option>
					<option value="1" th:selected="${admin.flag==1}">是</option>	
</select>

js取值

<script type="text/javascript">
var num = [[${num}]];
<script>

字串處理

替換金額最後的.0

<td th:text="${#strings.replace(user.loanmoney,'.0','')}">金額(萬元)</td>

<td >[[${#strings.replace(user.loanmoney,'.0','')}]] 金額(萬元)</td>

擷取字串

將電話號碼18360554400顯示為183****4400

 <td>[[${#strings.substring(userphone,0,3)}]]<span>****</span>[[${#strings.substring(userphone,7,11)}]] </td>

if判斷

             <tr th:if="${pageInfoSize eq 0}">
			         <td colspan="12">沒有查詢相關記錄</td>
			  </tr>

checkbox選中

<input type="checkbox" th:checked="${q.remark eq 'checked'}" name="remark1" id="z1" th:value="${}">

更多參考:
https://blog.csdn.net/qq_22860341/article/details/79229181