七、Thymeleaf对象的访问

7.1、实体对象属性的访问

        使用变量表达式访问对象属性时,可以使用"对象.属性名"的语法。注意此处的属性名是对象属性getter方法的名称。

示例

        在项目包下添加domain包,在包中创建“User”类,添加userId和userName属性

import java.io.Serializable;


public class User implements Serializable{
private static final long serialVersionUID = -5822957642556734665L;
private Integer userId;
private String userName;
//省略getter和setter方法,其中userName的getter方法的名称为getName


}

在TestServlet中创建User对象,并给属性赋值,保存到rquest中

User u = new User();
u.setUserId(1);
u.setUserName("张三");
request.setAttribute("user", u);

在test.html页面中使用ul标签显示属性的值

运行test.do,页面显示效果如下

七、Thymeleaf对象的访问_第1张图片

7.2 web对象的访问

在html页面中能够访问的web对象有request、session、servletContext对象,当不指定web对象进行访问时,thymeleaf只会request对象中的属性值。

示例

在TestServlet中,添加以下代码,在三个web对象中分别存入不同的属性值

request.setAttribute("scope", "request");

在index.html中输出scope的值

[[${scope}]]

运行test.do,页面显示效果如下,输出的是request范围的属性值

七、Thymeleaf对象的访问_第2张图片

如果数据是保存在session或是servletContext中,必须指定范围对象。

语法

request范围:${xxx}或者${#request.getAttribute('xxx')
session范围:${session.xxxx}或者${#session.getAttribute('xxx')
servletContext范围:${application.xxx}或者${#servletContext.getAttribute('xxx')}
获取请求参数:$(param.xxx)或者${#request.getParameter('scope')}

示例,在TestServlet中不同web对象中保存数据

request.setAttribute("scope", "request");
request.getSession().setAttribute("scope", "session");
request.getServletContext().setAttribute("scope", "servletContext");

修改index.html代码,从不同范围中获取数据

  • [[${scope}]]
  • [[${session.scope}]]
  • [[${application.scope}]]
  • [[${param.scope}]]

在路径后添加参数scope=parameter,再次运行。效果如下

七、Thymeleaf对象的访问_第3张图片

7.3 thymeleaf内置变量的访问

thymeleaf提供了一些内置变量,这些变量使用#开头,使用这些内置变量可以获得更高的灵活性。

变量名

说明

#ctx

上下文对象。

#vars

上下文变量。

#locale

上下文locale。

#request

(仅在Web上下文中)HttpServletRequest对象。

#response

(仅在Web上下文中)HttpServletResponse对象。

#session

(仅在Web上下文中)HttpSession对象。

#servletContext

(仅在Web上下文中)servletContext对象。

示例

修改上一示例值的获取方式,使用内置变量访问

  • [[${#request.getAttribute('scope')}]]
  • [[${#session.getAttribute('scope')}]]
  • [[${#servletContext.getAttribute('scope')}]]
  • [[${#request.getParameter('scope')}]]

运行后效果与上一示例相同

七、Thymeleaf对象的访问_第4张图片

 文章来源于哔站《七、Thymeleaf对象的访问》

更多学习视频和专栏文章请到哔站个人空间: 布道师学院的个人空间-布道师学院个人主页-哔哩哔哩视频

更多资源和项目下载请到:”开源吧(找实战项目和毕设项目的好网站)“ ​ :开源吧

你可能感兴趣的:(Java,thymeleaf,java,Thymeleaf,JavaWeb,模板引擎)