文章11 | 阅读 6090 | 点赞0
#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:直接访问与当前请求关联的 java.util.Locale。
<body>
<p>[[${#locale}]]</p>
</body>
在 Web 环境中使⽤ Thymeleaf 时,可以使⽤⼀系列快捷⽅式来访问请求参数,会话属性和应⽤程序属性。注意这些不是上下⽂对象,⽽是添加到上下⽂ Map 集合中的变量,所以在没有#的情况下访问它们。 在某种程度上,它们作为命名空间。
可参考官网:https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#web-context-namespaces-for-requestsession-attributes-etc.
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>
1、session:⽤于获取 session 属性。与 param 同理,只是作用域不同而已。
2、//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>
3、比如后台设置了 HttpSession 属性值:
User user = new User();
user.setName("Admin");
request.getSession().setAttribute("user",user);//设置 HttpSession
则页面可以取值如下:
<b>[[${session.user.name}]]</b>
<b th:if="${session.user != null}" th:text="${session.user.name}"></b>
注意:不能使用直接使用 ${user.name} 取值,必须借助 session 对象。
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 环境中,还可以直接访问以下对象(请注意,这些对象不是Map集合/命名空间)。
详见官网:https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#web-context-objects
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://wangmaoxiong.blog.csdn.net/article/details/84788209
内容来源于网络,如有侵权,请联系作者删除!