1. 程式人生 > >Thymeleaf 基本用法總結

Thymeleaf 基本用法總結

轉自https://www.cnblogs.com/topwill/p/7434955.html 一、引用名稱空間

    在html中引入此名稱空間,可避免編輯器出現html驗證錯誤,雖然加不加名稱空間對Thymeleaf的功能沒有任何影響。

二、輸出內容

    2.1  <p th:text="#{home.welcome}">Welcome to our grocery store!</p>

    說明:

             1. th:text  用來將內容輸出到所在標籤的body中。

             2. #{home.welcome} 用來引入資料home物件中的 welcome屬性。

             3. 可以用th:utext 用來顯示“unescaped ” 的html內容。

    2.2    <p>Today is: <span th:text="${today}">13 February 2011</span></p>

    說明:${today} 用來引用 today 變數

三、訪問物件

   ${param.x} 返回名為x 的 request引數。(可能有多個值)

   ${session.x} 返回名為x的Session引數。

   ${application.x} 返回名為 servlet context 的引數。

四、基本語法

   4.1  #{home.welcome} --  訪問資料

   4.2  #{home.welcome(${session.user.name})}  -- 格式化資料 當 home.welcome 為 "abcdegf{0}"  類似這種內容時。(多個引數以逗句分隔)。

   4.3  ${today} --- 訪問變數

   4.4  訪問基本物件

#ctx: the context object. #vars: the context variables. #locale: the context locale. #request: (only in Web Contexts) the HttpServletRequest object. #response: (only in Web Contexts) the HttpServletResponse object. #session: (only in Web Contexts) the HttpSession object. #servletContext: (only in Web Contexts) the ServletContext object.

    4.5  日期的輸出

    <span th:text="${#calendars.format(today,'dd MMMM yyyy')}">13 May 2011</span>

    4.6  星號語法

Name: Sebastian.

Surname: Pepper.

Nationality: Saturn.

4.7 輸出URL

   <a href="product/list.html" th:href="@{/product/list}">Product List</a>

   <a href="details.html" th:href="@{/order/{orderId}/details(orderId=${o.id})}">view</a>

   4.8  使用程式碼段

   <div th:insert="~{commons :: main}">...</div>

   4.9  直接輸出內容   

– 輸出字元

– 輸出資料表示式

--輸出布林表示式

– 帶變數的

4.10 條件表示式

... ...省略 false 結果的表達方式 ...省略 true 結果的表達方式

Age: 27.

no user authenticated --不做任何處理時用下劃線 _ 表示

4.11 格式化

   <td th:text="${{user.lastAccessDate}}">...</td> --${{.}}  呼叫預設的格式化器來輸出結果。

   4.12  預處理

   <p th:text="${__#{article.text('textVar')}__}">Some text here...</p>  

   說明:thymeleaf 的處理模板內容的順序與書寫順序無關,只能通過  __${expression}__ ,來將需要先一步計算出來後面          要用的變數指定為優化處理。

五、設定 Attribute 值

   5.1 設定任何Attribute 的方法

   <input type="submit" value="Subscribe!" th:attr="value=#{subscribe.submit}"/>   --設定單個

   <img src="../../images/gtvglogo.png"  th:attr="[email protected]{/images/gtvglogo.png},title=#{logo},alt=#{logo}" />  --一次設定多個

    5.2 設定一些內建的Attribute的方法   

   <li><a href="product/list.html" th:href="@{/product/list}">Product List</a></li>

   <form action="subscribe.html" th:action="@{/subscribe}">

   <input type="submit" value="Subscribe!" th:value="#{subscribe.submit}"/>

   <img src="../../images/gtvglogo.png"  th:src="@{/images/gtvglogo.png}" th:alt-title="#{logo}" /> -- 一次設定多個(alt title)的方法

   其它的可用屬性:http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#setting-value-to-specific-attributes

    5.3 設定html裡沒有指的任何屬性的語法

    <span th:whatever="${user.name}">...</span>   ---whatever 可以換成任何你想設的屬性

六、迴圈輸出的語法

   6.1 基本迴圈
 <td th:text="${prod.name}">Onions</td>
 <td th:text="${prod.price}">2.41</td>
 <td th:text="${prod.inStock}? #{true} : #{false}">yes</td>

6.2 迴圈狀態的使用

NAME PRICE IN STOCK
Onions 2.41 yes
   關於狀態的其它資訊的使用詳細參考:http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#keeping-iteration-status

七、條件判斷

   7.1 if 和 unless

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

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

   7.2 switch 語句

User is an administrator

User is a manager

User is some other thing

--預設的 case 相當於default

八、模板 include

  8.1 定義和引用程式碼塊

  定義程式碼塊
© 2011 The Good Thymes Virtual Grocery

引用程式碼塊

引用未用fragment 標註的程式碼塊

© 2011 The Good Thymes Virtual Grocery

8.2 th:insert th:replace th:include 之間的區別

th:insert — 插入程式碼塊 th:replace – 替換程式碼塊會替換掉容器標籤 th:include ---- 和insert相似但只會插入fragment標註body內的內容。

8.3 帶引數的程式碼段

...

 <div th:replace="::frag (${value1},${value2})">...</div>
 <div th:replace="::frag (onevar=${value1},twovar=${value2})">...</div>

九、區域性變數的使用示例

The name of the first person is Julius Caesar.

The name of the first person is Julius Caesar.

But the name of the second person is Marcus Antonius.

十、註釋

    <!-- ... -->  

十一、說明

    以上只列出Thymeleaf了簡要常用的語法和使用方式,更多詳情的說明和規則請參見:http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#introducing-thymeleaf