1.3方言:標準方言
thymeleaf是乙個極易擴充套件的模板引擎(實際上它應該更好地稱為模板引擎框架),它允許您完全定義將在模板中處理的dom節點以及它們的處理方式。
將一些邏輯應用於dom節點的物件稱為處理器,並且一組這些處理器 - 還有一些額外的工件 - 被稱為方言,其中thymeleaf的核心庫提供了乙個開箱即用的稱為標準方言的方言,這應該足以滿足大部分使用者的需求。
標準方言是本教程涵蓋的方言。您將在以下頁面中了解的每個屬性和語法功能都由此方言定義,即使未明確提及。
當然,如果使用者希望在利用庫的高階功能的同時定義自己的處理邏輯,則可以建立自己的方言(甚至擴充套件標準方言)。模板引擎可以一次配置多種方言。
官方的thymeleaf-spring3和thymeleaf-spring4整合包都定義了一種稱為「springstandard dialect」的方言,大部分等同於標準方言,但是經過少量修改以更好地利用spring framework中的某些功能(例如,使用spring expression 語言而不是thymeleaf的標準ognl)。 因此,如果您是spring mvc使用者,那麼您不會浪費時間,因為您在此處學習的幾乎所有內容都將在spring應用程式中使用。
thymeleaf標準方言可以在任何模式下處理模板,但特別適用於面向web的模板模式(xhtml和html5模式)。 除了html5,它還專門支援和驗證以下xhtml規範:xhtml 1.0 transitional,xhtml 1.0 strict,xhtml 1.0 frameset和xhtml 1.1。
標準方言的大多數處理器都是屬性處理器。 這使得瀏覽器甚至可以在處理之前正確顯示xhtml / html5模板檔案,因為它們只會忽略其他屬性。 例如,雖然使用標記庫的jsp可能包含不能由瀏覽器直接顯示的**片段,例如:
...... thymeleaf standard dialect將允許我們實現相同的功能:
這不僅會被瀏覽器正確顯示,而且還允許我們(可選)指定其中的值屬性(在這種情況下為「james carrot」),當在瀏覽器中靜態開啟原型時將顯示該屬性,並且 將在thymeleaf處理模板期間由$ 的評估結果替換。
如果需要,這將允許您的設計人員和開發人員處理相同的模板檔案,並減少將靜態原型轉換為工作模板檔案所需的工作量。 這樣做的能力通常稱為自然模板。
1.4整體架構
thymeleaf的核心是dom處理引擎。具體來說,它使用自己的高效能dom實現 - 不是標準的dom api--用於構建模板的記憶體樹表示,稍後通過遍歷節點並在其上執行處理器來操作處理器,根據當前配置和傳遞給模板的資料集,用於表示 - 稱為上下文。
使用dom模板表示使其非常適合web應用程式,因為web文件通常表示為物件樹(實際上dom樹是瀏覽器在記憶體中表示網頁的方式)。此外,基於大多數web應用程式僅使用幾十個模板的想法,這些模板不是大檔案,並且在應用程式執行時它們通常不會更改,thymeleaf使用記憶體快取的已解析模板dom樹允許它在生產環境中快速,因為大多數模板處理操作都需要很少的i / o(如果有的話)。
然而,存在乙個限制:與其他模板解析/處理方法相比,這種架構還需要為每個模板執行使用更大量的記憶體空間,這意味著您不應該使用該庫來建立大資料xml文件(而不是 網路檔案)。 作為一般的經驗法則(並且總是取決於jvm的記憶體大小),如果您在單個模板執行中生成大小在幾十兆位元組的xml檔案,那麼您可能不應該使用thymeleaf。
1.5在繼續之前,你應該閱讀......
thymeleaf特別適合在web應用程式中工作。 web應用程式基於一系列標準,每個人都應該非常清楚,但很少有人 - 即使他們已經與他們合作多年。
隨著html5的出現,當今web標準的最新技術比以往更加混亂......我們是否會從xhtml轉向html? 我們會放棄xml語法嗎? 為什麼沒有人再談論xhtml 2.0了?
因此,在本教程中進一步討論之前,強烈建議您閱讀有關thymeleaf**上的文章「從html到html(通過html)」,您可以在此位址找到該文章:
Thymeleaf學習筆記 二)
語法 含義 預設呼叫轉換函式,將其轉換為string 示例 語法 含義 在預處理階段,替換為對應的message information,基於locale 示例 th text some text here.語法 th attr attrname 含義 設定節點中特定屬性的值 示例 th attr ...
thymeleaf 的使用 二 基本語法
在html檔案中,首先匯入thymeleaf的命名空間 html lang en xmlns th 然後先感受一下thymeleaf的語法 he 先在controller中配置 1 controller 2public class hellocontroller 10 html檔案 如下 1 doc...
ACD系列翻譯之四
8.performance compatibility 圖表略。security model compatibility 裝置必須實現乙個與sdk文件的securityand permissions 9.1 permission 裝置必須支援sdk文件中的許可權模型中規定的所有許可權,並且不能刪除 ...