基於IDEA的SpringBoot專案建立(三)——thymeleaf
一、thymeleaf模板引擎的使用
在web專案開發中,我們最早接觸、同時也是最熟悉的前端頁面就是JSP了。Jsp作為動態頁面不可缺少的技術,在B/S 架構中長時間佔有不可或缺的地位。然而後期出現了一些JSP技術開發伊始未曾想過的問題。那就是耦合度過高,業務邏輯和頁面展示同時出現在前端頁面在帶來開發便利的同時,也造成了每次有需要改動的地方都會造成前端頁面的修改,這違反了六原則一法則中的大部分規定。
【注】:六原則一法則為軟體設計與開發的重要邏輯,建議大家去學習一下。
現在大多數人使用的jsp技術泛指單純的前端頁面,我們已經不再將Java程式碼解除安裝前端頁面,以避免耦合度過高(前文說過耦合度的問題,自己去學)。Jsp前端引擎大家已經瞭解的差不多了,現在為大家介紹一款SpringBoot框架推薦給大家的另一款前端的模板引擎——thymeleaf。
首先,我們在使用thymeleaf之前依舊要引入thymeleaf的相關依賴,程式碼如下:
<!--引入thymeleaf依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
曾經有小夥伴問過我,為什麼在引入一些相關依賴的時候 porm.xml 檔案中還是報紅,大家注意每次修改完 porm.xml 檔案後頁面右上角有一個藍色的 M 字母圖示,這代表我們對於Maven相關的程式碼有了更改,IDEA提示我們要對專案進行 Maven Update 操作,點選等待更新完成就好。
現在我們已經引入了 thymeleaf 的依賴,現在來介紹一下相關語法:
新建一個 .html 檔案,在 <html> 頭中加入如下程式碼:
<html lang="en" xmlns:th="http://www.thymeleaf.org">
這表示我們要在當前前端頁面中使用 thymeleaf 的模板引擎。現在我們所有準備工作都已經完成了,接下來介紹這個新的模板引擎如何對資料進行操作。
曾經我們在Jsp模板引擎中想取出變數的值,用到的是 ${key} ,同樣還有設定標籤中的 value 值,這些在 thymeleaf 中都與Jsp沒什麼太大的區別,只是需要在前面加上 th: 。程式碼如下:
<span th:text="${username}"/>
<input th:value="${password}">
同樣的還有判斷操作以及超連結。不過這兩項與曾經的Jsp不太一樣,我們先看程式碼,然後再解釋:
<span th:if="${age} le 20"/>
<a th:href="@{/student/getStudent(sid=21)}">查詢學生</a>
在判斷操作中,le 代表的是小於等於。類似的還有許多運算子,如下所示:
- lt:less than 小於
- le:less than or equal to 小於等於
- eq:equal to 等於
- ne:not equal to 不等於
- ge:greater than or equal to 大於等於
- gt:greater than 大於
我們一般用以上的運算子來對資料進行判斷操作。
在超連結語句中我們發現,除了在 href 前加上了thymeleaf特定的字首,我們還要在路徑前加上 @{} ,這個不做過多解釋,僅僅為特定用法。需要注意的是,我們在路徑中攜帶引數時,需要使用 括號 攜帶,這個要搞清楚。
接下來是比較重要的一個,展示多個資料,也就是經常需要使用到的遍歷,在 thymeleaf 中,我們使用的是如下方式:
<ul th:each="user:${users}">
<li><span th:text="${user.uid}"></span></li>
<li><span th:text="${user.uname}"></span></li>
<li><span th:text="${user.uage}"></span></li>
</ul>
<!-- 其語法格式為: -->
<th:each="每次遍歷的臨時變數名 : ${遍歷的集合}">
<!--與 foreach 的用法相似,略有不同,需多加註意-->
這就是thymeleaf模板引擎的基本使用了,總體來說與Jsp模板引擎沒有太大的區別,主要是體現在一些語法變更上。當然,想更多瞭解一些thymeleaf的區別,可以參考我的SpringBoot系列部落格的第一節。
相關文章
- idea建立springboot專案IdeaSpring Boot
- idea 建立springboot專案IdeaSpring Boot
- 使用IDEA建立springboot專案IdeaSpring Boot
- IDEA 快速建立 SpringBoot 專案IdeaSpring Boot
- 1.idea建立springboot專案IdeaSpring Boot
- IDEA建立SpringBoot的多模組專案教程IdeaSpring Boot
- IDEA建立SpringBoot專案(詳細教程)IdeaSpring Boot
- _005_SpringBoot_使用IDEA建立SpringBoot專案Spring BootIdea
- springboot web專案建立及自動配置分析(thymeleaf+flyway)Spring BootWeb
- IDEA基於支付寶小程式搭建springboot專案IdeaSpring Boot
- IDEA社群版(IDEA Community Edition)建立Springboot父子專案IdeaUnitySpring Boot
- _003_SpringBoot_使用IDEA快速建立一個SpringBoot專案Spring BootIdea
- idea建立javaweb專案IdeaJavaWeb
- idea建立web專案IdeaWeb
- [SpringBoot學習]-IDEA建立Gradle多Module結構的SpringBoot專案Spring BootIdeaGradle
- Idea 建立 父專案和子專案Idea
- Idea intellij jdk 1.7通過maven建立Springboot專案IdeaIntelliJJDKMavenSpring Boot
- IDEA建立Flink專案Idea
- 基於 dva 建立 antd-mobile 的專案
- 基於SpringBoot+Mybatis+Thymeleaf商品資訊管理系統Spring BootMyBatis
- IDEA建立動態Web專案IdeaWeb
- 使用IDEA建立gradle專案IdeaGradle
- IntelliJ IDEA建立 SBT專案IntelliJIdea
- Intellij idea建立javaWeb專案IntelliJIdeaJavaWeb
- idea社群版建立web專案IdeaWeb
- Mybatis入門——基礎操作(基於springboot專案)MyBatisSpring Boot
- 搭建基於springboot的dubbo專案踩坑記Spring Boot
- spring boot 建立web專案(IDEA)Spring BootWebIdea
- idea建立spring boot專案慢()IdeaSpring Boot
- IDEA建立Maven專案中踩過的坑IdeaMaven
- 基於requirejs的vue2專案 (三)UIJSVue
- 使用idea建立springboot專案並打成war包釋出到weblogic上IdeaSpring BootWeb
- Idea下構建基於Gradle的Spring Boot專案IdeaGradleSpring Boot
- 線上快速建立SpringBoot專案Spring Boot
- SpringBoot入門 - 建立專案Spring Boot
- 基於Maven建立SpringBoot的2種方式MavenSpring Boot
- intellij idea 建立動態web專案IntelliJIdeaWeb
- Intellij IDEA建立spring MVC專案IntelliJIdeaSpringMVC