Spring Boot 2.x教程-Thymeleaf 原理是什么



layout: post
title: Spring Boot 2.x教程-Thymeleaf 原理是什么
categories: SpringBoot
description: Spring Boot 2.x教程-Thymeleaf 原理是什么
keywords: SpringBoot, Spring, Thymeleaf

如要要理清楚 Thymeleaf 的原理,那么就要從模板引擎的原理說起。Thymeleaf只不過是眾多模板中的一員,功能是一致的。

例如 JSP 也是一種模板。

1 Thymeleaf 模板原理

模板的誕生是為了將顯示與數據分離,模板技術多種多樣,但其本質是將模板文件和數據通過模板引擎生成最終的 HTML 代碼。Thymeleaf 亦是如此。

  1. 沒有模板

  沒有模板前,我們可以直接用后端語言輸出HTML前端,並讓瀏覽器渲染。

  1. 有了模板

  在有了模板后,后端語言只要輸出數據(例如 XML 格式、JSON 格式),把數據交給模板引擎,模板引擎根據模板文件和數據進行渲染成HTML文檔。

所謂模板引擎,需要把模板文件、數據解析到前端HTML文檔流展示給用戶看。

  目前 Thymeleaf 是面向 Web 和獨立環境的現代服務器端 Java 模板引擎,能夠處理 HTML,XML,JavaScript,CSS 設置純文本。

2 Thymeleaf 模板引擎

Thymeleaf 可以處理 6 種類型的ember

  • HTML
  • XML
  • TEXT
  • JAVASCRIPT
  • CSS
  • RAW

Thymeleaf 支持HTML、JAVASCRIPT、CSS 這就意味着他完全兼容HTML代碼。

目前 Thymeleaf 可對下面幾種類型進行解析

  1. 文本
  2. 屬性
  3. 循環迭代
  4. 條件判斷
  5. 模板布局
  6. 局部變量
  7. 屬性優先級
  8. 注釋
  9. 內聯
  10. 文本模板模式
  11. 其他

我們以一個簡單的 Spring Boot 2.x教程-如何使用 Thymeleaf 示例來輸出來看看 Thymeleaf 是怎么工作的。

2.1 Thymeleaf 的 簡單示例

源碼下載

2.2 Thymeleaf 工作流程

我們需要提出幾個問題

  1. 當在控制層輸出對象,這些對象是怎么被引擎識別

  在 Controller 層我們輸出了對象 user 和 users 兩個對象。這兩個對象則被模板引擎托管。

  1. 引擎加載模版文件的時候,如何識別需要替換的值

  模板引擎根據 Controller 中的模板路徑 /demo/simple 找到相應的模板文件,模板文件中使用正則表達式查找模板標簽語言,Thymeleaf 模板引擎采用 th: 開頭。例如 th:value, th:text 。

  1. 最后引擎是如何吧控制層對象轉化成 html 等前段語言輸出的

  模板引擎找到了模板文件中的模板表達式,模板引擎根據模板表達式中的內容來實現一種算法,算法把 Controller 輸出的對象匹配到模板表達式中。


引用

  1. 淺談模板引擎


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM