Thymeleaf 參考手冊(cè)

學(xué)習(xí)完整課程請(qǐng)移步 互聯(lián)網(wǎng) Java 全棧工程師

本章為 Thymeleaf 語(yǔ)法參考牍白,主要介紹如:循環(huán)首有、判斷戒洼、模板布局俏橘、內(nèi)置對(duì)象等。

聲明

修改 html 標(biāo)簽用于引入 thymeleaf 引擎圈浇,這樣才可以在其他標(biāo)簽里使用 th:* 語(yǔ)法寥掐。

<!DOCTYPE html SYSTEM "http://www.thymeleaf.org/dtd/xhtml1-strict-thymeleaf-spring4-4.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">

使用文本

語(yǔ)法 說(shuō)明
{home.welcome} 使用國(guó)際化文本,國(guó)際化傳參直接追加 (value…)
${user.name} 使用會(huì)話(huà)屬性
@{} 表達(dá)式中使用超鏈接 <link rel="stylesheet" type="text/css" media="all"href="../../css/gtvg.css" th:href="@{/css/gtvg.css}" />
- -
${} 表達(dá)式中基本對(duì)象
param 獲取請(qǐng)求參數(shù),比如 ${param.name}, http://localhost:8080?name=jeff
session 獲取 session 的屬性
application 獲取 application 的屬性
execInfo 有兩個(gè)屬性 templateName 和 now (是 java 的 Calendar 對(duì)象)
ctx
vars
locale
httpServletRequest
httpSession
- -
th 擴(kuò)展標(biāo)簽
th:text 普通字符串
th:utext 轉(zhuǎn)義文本
th:href 鏈接
th:attr 設(shè)置元素屬性 <img src="../../images/gtvglogo.png" th:attr="src=@{/images/gtvglogo.png},title=#{logo},alt=#{logo}" />
th:with 定義常量
th:attrappend 追加屬性
th:classappend 追加類(lèi)樣式
th:styleappend 追加樣式

其他標(biāo)簽

語(yǔ)法 說(shuō)明
th:abbr
th:accept
th:accept-charset
th:accesskey
th:action
th:align
th:alt
th:archive
th:audio
th:autocomplete
th:axis
th:background
th:bgcolor
th:border
th:cellpadding
th:cellspacing
th:challenge
th:charset
th:cite
th:class
th:classid
th:codebase
th:codetype
th:cols
th:colspan
th:compact
th:content
th:contenteditable
th:contextmenu
th:data
th:datetime
th:dir
th:draggable
th:dropzone
th:enctype
th:for
th:form
th:formaction
th:formenctype
th:formmethod
th:formtarget
th:frame
th:frameborder
th:headers
th:height
th:high
th:href
th:hreflang
th:hspace
th:http-equiv
th:icon
th:id
th:keytype
th:kind
th:label
th:lang
th:list
th:longdesc
th:low
th:manifest
th:marginheight
th:marginwidth
th:max
th:maxlength
th:media
th:method
th:min
th:name
th:optimum
th:pattern
th:placeholder
th:poster
th:preload
th:radiogroup
th:rel
th:rev
th:rows
th:rowspan
th:rules
th:sandbox
th:scheme
th:scope
th:scrolling
th:size
th:sizes
th:span
th:spellcheck
th:src
th:srclang
th:standby
th:start
th:step
th:style
th:summary
th:tabindex
th:target
th:title
th:type
th:usemap
th:value
th:valuetype
th:vspace
th:width
th:wrap
th:xmlbase
th:xmllang
th:xmlspace
th:alt-title
th:lang-xmllang

循環(huán)

<tr th:each="prod : ${prods}">
    <td th:text="${prod.name}">Onions</td>
    <td th:text="${prod.price}">2.41</td>
    <td th:text="${prod.inStock}? #{true} : #{false}">yes</td>
</tr>

<table> 
    <tr>
        <th>NAME</th>
        <th>PRICE</th>
        <th>IN STOCK</th>
    </tr>
    <tr th:each="prod,iterStat : ${prods}" th:class="${iterStat.odd}? 'odd'">
    <td th:text="${prod.name}">Onions</td>
    <td th:text="${prod.price}">2.41</td>
    <td th:text="${prod.inStock}? #{true} : #{false}">yes</td>
  </tr>
</table>

迭代器的狀態(tài):

  • index: 當(dāng)前的索引磷蜀,從0開(kāi)始
  • count: 當(dāng)前的索引召耘,從1開(kāi)始
  • size:總數(shù)
  • current:
  • even/odd:
  • first
  • last

判斷

if

<a href="comments.html" th:href="@{/product/comments(prodId=${prod.id})}" th:if="${not #lists.isEmpty(prod.comments)}">view</a>

unless

<a href="comments.html" th:href="@{/comments(prodId=${prod.id})}" th:unless="${#lists.isEmpty(prod.comments)}">view</a>

switch

<div th:switch="${user.role}">
    <p th:case="'admin'">User is an administrator</p> <p th:case="#{roles.manager}">User is a manager</p>
</div>

<div th:switch="${user.role}">
    <p th:case="'admin'">User is an administrator</p> <p th:case="#{roles.manager}">User is a manager</p> <p th:case="*">User is some other thing</p>
</div>

th:block

<table>
    <th:block th:each="user : ${users}">
    <tr>
        <td th:text="${user.login}">...</td> <td th:text="${user.name}">...</td>
    </tr>
    <tr>
        <td colspan="2" th:text="${user.address}">...</td> 
    </tr>
    </th:block>
</table>

推薦下面寫(xiě)法(編譯前看不見(jiàn))

<table>
    <tr>
        <td th:text="${user.login}">...</td>
        <td th:text="${user.name}">...</td> </tr>
        <tr>
        <td colspan="2" th:text="${user.address}">...</td>
    </tr>
    <!--/*/ </th:block> /*/--> 
</table>

th:inline

th:inline 用法

th:inline 可以等于 text , javascript(dart) , none

text: [[…]]

<p th:inline="text">Hello, [[#{test}]]</p>

javascript: /[[…]]/

<script th:inline="javascript">
    var username = /*[[
        #{test}
    ]]*/;
    var name = /*[[
        ${param.name[0]}+${execInfo.templateName}+'-'+${#dates.createNow()}+'-'+${#locale}
    ]]*/;
</script>
<script th:inline="javascript">

/*<![CDATA[*/

    var username = [[#{test}]];

    var name = [[${param.name[0]}+${execInfo.templateName}+'-'+${#dates.createNow()}+'-'+${#locale}]];

/*]]>*/

</script>

adding code: /* [+…+]*/

var x = 23;
/*[+
var msg = 'Hello, ' + [[${session.user.name}]]; +]*/
var f = function() {
...

removind code: /[- / and /* -]*/

var x = 23;
/*[- */
var msg = 'This is a non-working template'; /* -]*/
var f = function() {
...
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市褐隆,隨后出現(xiàn)的幾起案子怎茫,更是在濱河造成了極大的恐慌,老刑警劉巖妓灌,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轨蛤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡虫埂,警方通過(guò)查閱死者的電腦和手機(jī)祥山,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)掉伏,“玉大人缝呕,你說(shuō)我怎么就攤上這事「ⅲ” “怎么了供常?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)鸡捐。 經(jīng)常有香客問(wèn)我栈暇,道長(zhǎng),這世上最難降的妖魔是什么箍镜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任源祈,我火速辦了婚禮,結(jié)果婚禮上色迂,老公的妹妹穿的比我還像新娘香缺。我一直安慰自己,他們只是感情好歇僧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布图张。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪祸轮。 梳的紋絲不亂的頭發(fā)上姑隅,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音倔撞,去河邊找鬼。 笑死慕趴,一個(gè)胖子當(dāng)著我的面吹牛痪蝇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冕房,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼躏啰,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了耙册?” 一聲冷哼從身側(cè)響起给僵,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎详拙,沒(méi)想到半個(gè)月后帝际,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡饶辙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年蹲诀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弃揽。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡脯爪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出矿微,到底是詐尸還是另有隱情痕慢,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布涌矢,位于F島的核電站掖举,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏娜庇。R本人自食惡果不足惜拇泛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望思灌。 院中可真熱鬧俺叭,春花似錦、人聲如沸泰偿。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至裕照,卻和暖如春攒发,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背晋南。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工惠猿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人负间。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓偶妖,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親政溃。 傳聞我的和親對(duì)象是個(gè)殘疾皇子趾访,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自 http://blog.csdn.net/zrk1000/article/details/72667478...
    ae7729ac3ac8閱讀 2,456評(píng)論 0 0
  • 創(chuàng)建 html 使用文本 其他th標(biāo)簽 對(duì)于 html5 元素名稱(chēng)的另一種友好寫(xiě)法 表達(dá)式語(yǔ)法 簡(jiǎn)單表達(dá)式語(yǔ)法 #...
    額嗬閱讀 22,803評(píng)論 0 7
  • Thymeleaf簡(jiǎn)介 前面的例子我們使用的視圖技術(shù)主要是JSP。JSP的優(yōu)點(diǎn)是它是Java EE容器的一部分董虱,幾...
    樂(lè)百川閱讀 8,998評(píng)論 2 56
  • https://www.thymeleaf.org/doc/tutorials/3.0/usingthymelea...
    金剛_30bf閱讀 1,322評(píng)論 0 0
  • 引爆點(diǎn)扼鞋,即引爆一場(chǎng)流行,引爆一場(chǎng)消費(fèi)革命愤诱。 書(shū)中從米國(guó)獨(dú)立戰(zhàn)爭(zhēng)的起因的一場(chǎng)小事件云头,通過(guò)聯(lián)系員的快速傳播,引爆了改變...
    ShineLau閱讀 537評(píng)論 1 1