首页 > 编程笔记 > Java笔记 阅读:1

Thymeleaf内置对象大全(附带实例)

Thymeleaf 包含一些内置的基本对象,可以用于视图中获取上下文对象、请求参数、Session 等信息。这些基本对象使用 # 开头,如下表所示。

表:Thymeleaf 包含的基本对象
对象名 作用 说明
#ctx 获取上下文对象 上下文对象
#vars 访问 VariablesMap 所有上下文中的变量 上下文变量
#locale 访问与 java.util.Locale 关联的当前请求 区域对象
#request 访问与当前请求关联的 javax.servlet.HttpServletRequest 对象 HttpServletRequest 对象,仅 Web 环境可用
#response 访问与当前请求关联的 javax.servlet.HttpServletResponse 对象 HttpServletResponse 对象,仅 Web 环境可用
#session 访问 session 属性 HttpSession 对象,仅 Web 环境可用
#servletContext 访问与当前请求关联的 javax.servlet.ServletContext 对象 ServletContext 对象,仅 Web 环境可用

如表格所示,Thymeleaf 提供了有一系列的对象和属性用于访问请求参数、会话属性等应用属性。下面以其中两个常用的对象作为示例来演示。

1) 定义后台方法传值。创建一个后台方法,后台传回 request 请求参数和 session 属性,示例代码如下:
@RequestMapping("/object")
public String test1(HttpServletRequest request){
    request.setAttribute("request", "spring boot");
    request.getSession().setAttribute("session", "admin session");
    request.getServletContext().setAttribute("servletContext","Thymeleaf servletContext");
    return "baseobject";
}
在上面的示例中,我们分别在 request 和 session 对象中写入了相关的测试,验证前台是否能获取到这些自定义的 Web 请求信息。

2) 前端页面接收参数。接下来看看前端页面如何通过 Thymeleaf 内置的基本对象获取后端传递的值,在 /resources 目录下新建一个前端页面 baseobject.html,示例代码如下:
<h1>Thymeleaf模板引擎</h1>
<h3>基本对象</h3>
<p th:text="${#request.getAttribute('request')}"></p>
<p th:text="${#session.getAttribute('session')}"></p>
<p th:text="${#servletContext.getAttribute('servletContext')}"></p>
在上面的示例中,我们在 HTML 页面中通过 #request、#session 这些对象就能获取 Web 请求中的相关信息。

3) 启动验证。启动项目后,在浏览器中输入地址 http://localhost:8080/object,则会出现如下图所示的结果。


图 1 基本对象baseobject.html页面显示效果

在 HTML 页面中,通过 #request、#session 这些对象成功获取了后台返回的 Web 请求信息。

相关文章