8)Thymeleaf 基本对象表达式

目录

基本对象

#ctx 上下⽂对象

#locale

request和session属性web命名空间

param

session

application

web 上下⽂对象


Thymeleaf 提供了一些对象,程序员可以直接使用。

基本对象

#ctx 上下⽂对象

#ctx:上下⽂对象。根据环境(独⽴环境或Web环境)实现 org.thymeleaf.context.IContext 或 org.thymeleaf.context.IWebContext。

扫描二维码关注公众号,回复: 4435920 查看本文章

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

猜你喜欢

转载自blog.csdn.net/wangmx1993328/article/details/84788209
今日推荐