5分鐘瞭解Thymeleaf的標準方言(Standard dialects)
這篇指南將介紹Thymeleaf模板技術的標準方言(Standard dialects)和Spring標準方言(SpringStandard dialects)的一些重要概念。不能替代更加詳盡的教程,不過可以給你足夠的技術體驗。
標準方言(Standard dialects)
Thymeleaf的可擴充套件性很強,它支援自定義你自己的模板屬性集(或事件標籤)、表示式、語法及應用邏輯,它更像一個模板引擎框架。
然而,秉著“開箱即用”的原則,Thymeleaf提供了滿足大多數情況下的預設實現-標準方言(Standard and SpringStandard dialects)。你可以在模板中識別出這些被使用的標準方言,因為他們都以th屬性開頭,如
<span th:text="...">
值得注意的是,Standard和SpringStandard方言的用法幾乎相同,但是SpringStandard包括了Spring MVC整合的具體特徵(比如用Spring Expression Language來替代OGNL)。
標準表示式語法(Standard Expression syntax)
大部分Thymeleaf屬性允許它們的值被設定成或包含到表示式中,我們稱之為標準表示式, 它們分為四類: 1.變量表達式 2.選擇或星號表示式 3.文字國際化表示式 4.URL表示式變量表達式
變量表達式即OGNL表示式或Spring EL表示式(在Spring術語中也叫model attributes)。如下所示:它們將以HTML標籤的一個屬性來表示:${session.user.name}
<span th:text="${book.author.name}">
<li th:each="book : ${books}">
選擇(星號)表示式
選擇表示式很像變量表達式,不過它們用一個預先選擇的物件來代替上下文變數容器(map)來執行,如下:*{customer.name}
被指定的object由th:object屬性定義:
<div th:object="${book}"> ... <span th:text="*{title}">...</span> ... </div>
文字國際化表示式
文字國際化表示式允許我們從一個外部檔案獲取區域文字資訊(.properties),用Key索引Value,還可以提供一組引數(可選).#{main.title}
#{message.entrycreated(${entryId})}
可以在模板檔案中找到這樣的表示式程式碼:
<table>
...
<th th:text="#{header.address.city}">...</th>
<th th:text="#{header.address.country}">...</th>
...
</table>
URL表示式
URL表示式指的是把一個有用的上下文或回話資訊新增到URL,這個過程經常被叫做URL重寫。@{/order/list}
URLs還可以設定引數:
@{/order/details(id=${orderId})}
相對路徑:
@{../documents/report}
讓我們看這些表示式:
<form th:action="@{/createOrder}">
<a href="main.html" th:href="@{/main}">
字面量和操作
Thymeleaf有一組可用的字面量和操作。- Literals:
- Text literals:
'one text'
,'Another one!'
,… - Number literals:
0
,34
,3.0
,12.3
,… - Boolean literals:
true
,false
- Null literal:
null
- Literal tokens:
one
,sometext
,main
,…
- Text literals:
- Text operations:
- String concatenation:
+
- Literal substitutions:
|The name is ${name}|
- String concatenation:
- Arithmetic operations:
- Binary operators:
+
,-
,*
,/
,%
- Minus sign (unary operator):
-
- Binary operators:
- Boolean operations:
- Binary operators:
and
,or
- Boolean negation (unary operator):
!
,not
- Binary operators:
- Comparisons and equality:
- Comparators:
>
,<
,>=
,<=
(gt
,lt
,ge
,le
) - Equality operators:
==
,!=
(eq
,ne
)
- Comparators:
- Conditional operators:
- If-then:
(if) ? (then)
- If-then-else:
(if) ? (then) : (else)
- Default:
(value) ?: (defaultvalue)
- If-then:
表示式預處理
最後要講到的是表示式預處理,它被定義在_之間:#{selection.__${sel.code}__}
我們看到的變量表達式${sel.code}將先被執行,加入結果是"ALL",那麼_之間的值"ALL"將被看做表示式的一部分被執行,在這裡會變成selection.ALL。
一些基本屬性
讓我們看一組最基本的標準方言屬性,以th:text開頭,替換標籤中的文字內容(這裡再次強調THymeleaf的原型支援能力)。<p th:text="#{msg.welcome}">Welcome everyone!</p>
th:each將迴圈array或list中的元素並重復列印一組標籤。
<li th:each="book : ${books}" th:text="${book.title}">En las Orillas del Sar</li>
最後,Thymeleaf有很多th屬性來定義XHTML或者HTML5屬性,這些屬性只是執行表示式並把值設定成HTML的屬性值:
<form th:action="@{/createOrder}">
<input type="button" th:value="#{form.submit}" />
<a th:href="@{/admin/users}">
想了解更多?
相關推薦
5分鐘瞭解Thymeleaf的標準方言(Standard dialects)
這篇指南將介紹Thymeleaf模板技術的標準方言(Standard dialects)和Spring標準方言(SpringStandard dialects)的一些重要概念。不能替代更加詳盡的教程,不過可以給你足夠的技術體驗。 標準方言(Standard dialect
5分鐘瞭解赴港上市公司CEO薪酬
2018年韋萊韜悅中國內地赴香港上市公司高管薪酬、股權激勵和公司治理研究報告涵蓋中國內地赴香港上市公司共計713家,其中包括H股、紅籌股、以及2017年均市值規模在15億港幣以上的內地赴香港上市中資公司。 港股中國上市公司業績穩步上升,整體淨利潤增長率達到17% 20
5分鐘瞭解swagger
版權宣告:本文為RyuGou原創文章,未經博主允許不得轉載。 https://blog.csdn.net/i6448038/article/details/77622977 隨著網際網路技術的發展,現在的網站架構基本都由原來的後端渲染,變成了:前端渲染、先後端分離的
5分鐘瞭解Arcgis繪製地圖的方法步驟
【使用繪圖模板更高效的繪圖】:按著上述步驟對圖層設定了專題符號後,我們可以把每一類符號變成一個繪圖模板,該模板類似於一個繪圖工具,按照該模板繪製的要素就自動擁有了符號對應的屬性值和圖形樣式,這樣可以省去一邊繪圖,一邊還要輸屬性的繁瑣。
5分鐘瞭解lucene
本文通俗地介紹了Lucene全文檢索的內容及工作原理,以及索引的結構,旨在讓以前未了解過Lucene的讀者在能在短時間內對Lucene有簡單認知,未介紹具體程式碼,讀完本文可知道Lucene是什麼,有哪些具體應用,我們一直說的索引是什麼。 &
5分鐘瞭解Mockito
一、什麼是mock測試,什麼是mock物件? 先來看看下面這個示例: 從上圖可以看出如果我們要對A進行測試,那麼就要先把整個依賴樹構建出來,也就是BCDE的例項。 一種替代方案就是使用mocks 從圖中可以清晰的看出 mock物件就是在除錯期間用來作為真實物件的替代
5分鐘瞭解阿里時序時空資料庫
簡介 時序時空資料庫(Time Series & Spatial Temporal Database,簡稱 TSDB)
好程式設計師Java學習路線分享5分鐘瞭解基數排序
好程式設計師Java學習路線分享5分鐘瞭解基數排序,前言:基數排序無需進行比較和交換,而是利用分配和收集兩種基本操作實現排序。
5分鐘瞭解Prometheus
Prometheus(譯:普羅米修斯)用領先的開源監控解決方案為你的指標和警報提供動力(賦能)。 1. 概述 1.1. Prometheus是什麼? Prometheus是一個開源的系統監控和警報工具包。自2012年啟動以來,許多公司和組織都採用了Prome
5分鐘讓你瞭解 ZooKeeper 的功能和原理
目錄 一 .Zookeeper功能簡介 二 . ZooKeeper基本概念 2.1 叢集角色 2.2 叢集節點分工 2.3 session 2.4 資料節點 2.5
DevOps是什麼?5分鐘帶你瞭解DevOps
DevOps是什麼?5分鐘帶你瞭解DevOps by:karlin999的CSDN部落格 DevOps(英文Development和Operations的組合)是一組過程、方法與系統的統稱,用於促進開發(應用程式/軟體工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。它的出現是由
設計模式23種全解析(5分鐘徹底瞭解23種設計模式)
一、設計模式的分類 總體來說設計模式分為三大類: 建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 結構型模式,共七種:介面卡模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 行為型模式,共十一種:策略模式、模板
獲得PCC效能大賽背後的RocksDB引擎:5分鐘全面瞭解其原理
1、介紹 RocksDB 專案最開始是在 Facebook 作為一個試驗專案開發的高效的資料庫軟體,可以實現在伺服器負載下快速儲存(特別是快閃記憶體儲存)的資料儲存的全部潛力。它是一個 C++ 庫,可以用於儲存 KV,包括任意大小的位元組流。它支援原子讀寫。 R
Python的5種傳參姿勢,花兩分鐘瞭解一下
位置實參 實參和形參的位置是關聯對應的。一個實參對應一個相應位置的形參。 關鍵字實參 實參以 key=value 的形式傳遞,因為已經指明瞭將 value 傳給哪個引數,所以位置順序就無關緊要了。 預設值 可以給形參指定預設值,當沒有提供實參的時候,
比特幣 = 區塊鏈?5 分鐘讓你真正瞭解區塊鏈
近期,Facebook 旗下全球加密貨幣專案 Libra 官方網站正式上線併發布白皮書。一家世界級的網際網路巨頭不僅採納了區塊鏈技術,而且還發了幣,影響不言而喻。甚至有人認為,這是繼 2009 年比特幣、2013 年以太坊以來,數字貨幣領域最重要的一份白皮書。 這是不是表示真正的區塊鏈風口就要來了呢? 很多朋
5分鐘快速瞭解MySQL索引的各種型別
>文章持續更新,微信搜尋「**萬貓學社**」第一時間閱讀。 >關注後回覆「**電子書**」,免費獲取12本Java必讀技術書籍。 ### 什麼是索引? 索引是資料庫儲存引擎用於快速查詢到指定資料的一種資料結構。 可以用新華字典做類比:如果新華字典中對每個字的詳細解釋是資料庫中表的記錄,那麼按部首或拼音等
鏡像的分層結構 - 每天5分鐘玩轉容器技術(11)
數據 9.png upload 問題: 所有 rfi image tle acs Docker 支持通過擴展現有鏡像,創建新的鏡像。 實際上,Docker Hub 中 99% 的鏡像都是通過在 base 鏡像中安裝和配置需要的軟件構建出來的。比如我們現在構建一個新的鏡像,
web 實現5分鐘 鼠標鍵盤無操作,自動退出登陸
function settings 鼠標鍵盤 events <html> <head> <script type="text/javascript"> function ScreenSaver(settings){ this.settings
5分鐘帶你學習瀏覽器8大數據存儲技術
clas 上大 獲取 message logs 發送請求 我們 不兼容 class 瀏覽器的緩存機制 HTTP文件緩存、LocalStorage、 sessionStorage、cookie、indexDB、webSQL 、CatheStorage、Applicatio