1. 程式人生 > >8)Thymeleaf 基本物件表示式

8)Thymeleaf 基本物件表示式

目錄

基本物件

#ctx 上下⽂物件

#locale

request和session屬性web名稱空間

param

session

application

web 上下⽂物件


Thymeleaf 提供了一些物件,程式設計師可以直接使用。

基本物件

#ctx 上下⽂物件

#ctx:上下⽂物件。根據環境(獨⽴環境或Web環境)實現 org.thymeleaf.context.IContext 或 org.thymeleaf.context.IWebContext。

public interface IWebContext extends IContext。可參考官網:

https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#base-objects

org.thymeleaf.context.IContext 介面:

${#ctx.locale}
${#ctx.variableNames}

org.thymeleaf.context.IWebContext 介面:

${#ctx.request}
${#ctx.response}
${#ctx.session}
${#ctx.servletContext}

<body>
<p>#ctx.locale=[[${#ctx.locale}]]</p>
<p>#ctx.request=[[${#ctx.request}]]</p>
<p>#ctx.response=[[${#ctx.response}]]</p>
<p>#ctx.session=[[${#ctx.session}]]</p>
<p>#ctx.servletContext=[[${#ctx.servletContext}]]</p>
<p>#ctx.variableNames=[[${#ctx.variableNames}]]</p>
</body>

結果如下所示,沒有值的表示值為 null,用的是 Springboot 應用對 Thymeleaf 的預設配置。

#locale

#locale:直接訪問與當前請求關聯的 java.util.Locale。

<body>
<p>[[${#locale}]]</p>
</body>

request和session屬性web名稱空間

     在 Web 環境中使⽤ Thymeleaf 時,可以使⽤⼀系列快捷⽅式來訪問請求引數,會話屬性和應⽤程式屬性。注意這些不是上下⽂物件,⽽是新增到上下⽂ Map 集合中的變數,所以在沒有#的情況下訪問它們。 在某種程度上,它們作為名稱空間。

可參考官網:https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#web-context-namespaces-for-requestsession-attributes-etc.

param

param:⽤於獲取請求引數(瀏覽器url中的請求引數)。如 $ {param.foo} 是⼀個帶有 foo 請求引數值的 String [],$ {param.foo [0]} ⽤於獲取第⼀個值。

//See javadoc API for class org.thymeleaf.context.WebRequestParamsVariablesMap

<body>
<!--/*獲取請求引數個數*/-->
<p>${param.size()}=[[${param.size()}]]</p>
<!--/*判斷請求引數是否為空*/-->
<p>${param.isEmpty()}=[[${param.isEmpty()}]]</p>
<!--判斷引數是否包含某個 key,親測無效,總數返回 true-->
<p>${param.containsKey('u_id')}=[[${param.containsKey('u_id')}]]</p>
<!--獲取某個引數值,不存在時為null-->
<p>${param.u_id}=[[${param.u_id}]]</p>
</body>

session

session:⽤於獲取 session 屬性。與 param 同理,只是作用域不同而已。

//See javadoc API for class org.thymeleaf.context.WebSessionVariablesMap

<body>
<!--/*獲取請求引數個數*/-->
<p>${session.size()}=[[${session.size()}]]</p>
<!--/*判斷請求引數是否為空*/-->
<p>${session.isEmpty()}=[[${session.isEmpty()}]]</p>
<!--判斷引數是否包含某個 key,親測無效,總數返回 true-->
<p>${session.containsKey('u_id')}=[[${session.containsKey('u_id')}]]</p>
<!--獲取某個引數值,不存在時為null-->
<p>${session.u_id}=[[${session.u_id}]]</p>
</body>

application

application:⽤於獲取應⽤程式或servlet上下⽂屬性。與 param 同理,只是作用域不同而已。

//See javadoc API for class org.thymeleaf.context.WebServletContextVariablesMap

<body>
<!--/*獲取請求引數個數*/-->
<p>${application.size()}=[[${application.size()}]]</p>
<!--/*判斷請求引數是否為空*/-->
<p>${application.isEmpty()}=[[${application.isEmpty()}]]</p>
<!--判斷引數是否包含某個 key,親測無效,總數返回 true-->
<p>${application.containsKey('u_id')}=[[${application.containsKey('u_id')}]]</p>
<!--獲取某個引數值,不存在時為null-->
<p>${application.u_id}=[[${application.u_id}]]</p>
</body>

web 上下⽂物件

Web 環境中,還可以直接訪問以下物件(請注意,這些物件不是Map集合/名稱空間)。

詳見官網:https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#web-context-objects