Thymeleaf簡介

Thymeleaf是用於Web和獨立環境的現代伺服器端Java範本引擎。

Thymeleaf的主要目標是將優雅的自然範本帶到您的開發工作流程中—HTML能夠在流覽器中正確顯示,並且可以作為靜態原型,從而在開發團隊中實現更強大的協作。Thymeleaf能夠處理HTML,XML,JavaScript,CSS甚至純文本。

Thymeleaf的主要目標是提供一個優雅和高度可維護的創建範本的方式。 為了實現這一點,它建立在自然範本的概念之上,以不影響範本作為設計原型的方式將其邏輯注入到範本檔中。 這改善了設計溝通,彌合了前端設計和開發人員之間的理解偏差。

Thymeleaf也是從一開始就設計(特別是HTML5)允許創建完全驗證的範本。

Thymeleaf可以處理什麼樣的範本?

開箱即用,Thymeleaf可以處理六種範本,每種範本都稱為範本模式:

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

有兩種標記範本模式(HTML和XML),三種文本範本模式(TEXT,JAVASCRIPT和CSS)和一種無操作範本模式(RAW)。

HTML範本模式將允許任何類型的HTML輸入,包括HTML5,HTML4和XHTML。 將不會執行驗證或格式檢查,並且在輸出中盡可能地遵守範本代碼/結構。

XML範本模式將允許XML輸入。 在這種情況下,代碼應該是格式良好的 - 沒有未封閉的標籤,沒有未加引號的屬性等等,如果發現格式錯誤,解析器將會拋出異常。 請注意,將不會執行驗證(針對DTD或XML模式)。

TEXT範本模式將允許對非標記性質的範本使用特殊語法。 這種範本的例子可能是文本電子郵件或範本文檔。 請注意,HTML或XML範本也可以作為TEXT處理,在這種情況下,它們不會被解析為標記,而每個標記,DOCTYPE,注釋等都將被視為純文本。

JAVASCRIPT範本模式將允許處理Thymeleaf應用程式中的JavaScript檔。這意味著能夠像在HTML檔中一樣使用JavaScript檔中的模型數據,但是使用特定於JavaScript的集成(例如專門轉義或自然腳本)。 JAVASCRIPT範本模式被認為是文本模式,因此使用與TEXT範本模式相同的特殊語法。

CSS範本模式將允許處理Thymeleaf應用程式中涉及的CSS檔。類似於JAVASCRIPT模式,CSS範本模式也是文本模式,並使用TEXT範本模式中的特殊處理語法。

RAW範本模式根本不會處理範本。它意味著用於將未觸及的資源(檔,URL回應等)插入正在處理的範本中。例如,可以將HTML格式的外部非受控資源包含在應用程式範本中,從而安全地知道這些資源可能包含的任何Thymeleaf代碼都不會被執行。

方言:標準方言

Thymeleaf是一個非常容易擴展的範本引擎(事實上,它可以被稱為範本引擎框架),允許您定義和定制範本將被處理到一個很好的細節水準的方式。

一個將某些邏輯應用於標記工件(標籤,一些文本,注釋或者僅僅是範本不是標記的占位符)的對象被稱為處理器,而這些處理器的集合(可能還有一些額外的工件)是方言組成。 開箱即用,Thymeleaf的核心庫提供了一種稱為“標準方言”的方言,對大多數用戶來說應該是足夠的。

本教程涵蓋了標準方言。 您將在後面的頁面中瞭解的每個屬性和語法功能均由該方言定義,即使未明確提及。

當然,如果用戶想利用庫的高級功能定義自己的處理邏輯,用戶可以創建自己的方言(甚至擴展標準方言)。Thymeleaf也可以配置為一次使用幾種方言。

標準方言的大多數處理器是屬性處理器。 這允許流覽器甚至在被處理之前正確顯示HTML範本檔,因為它們將簡單地忽略附加屬性。 例如,雖然使用標記庫的JSP可能包含不能直接由流覽器顯示的代碼片段,例如:

<form:inputText name="userName" value="${user.name}" />

Thymeleaf標準方言將允許實現相同的功能:

<input type="text" name="userName" value="zaixian" th:value="${user.name}" />

這不僅可以被流覽器正確顯示,而且還允許(可選地)在流覽器中靜態打開原型時指定一個值屬性(本例中為“zaixian”),在處理範本期間被${user.name}的評估結果值所取代。

這有助於設計人員和開發人員使用完全相同的範本檔,並減少將靜態原型轉換為工作範本檔所需的工作量。 這樣做的能力是一個稱為自然範本的功能。


上一篇: 下一篇: Thymeleaf Servlet Hellow World示例