• 七、Thymeleaf对象的访问


    7.1、实体对象属性的访问

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

    示例

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

    1. import java.io.Serializable;
    2. public class User implements Serializable{
    3. private static final long serialVersionUID = -5822957642556734665L;
    4. private Integer userId;
    5. private String userName;
    6. //省略getter和setter方法,其中userName的getter方法的名称为getName
    7. }

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

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

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

    1. <ul>
    2. <li th:text="${user.userId}"></li>
    3. <li th:text="${user.name}"></li>
    4. </ul>

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

    7.2 web对象的访问

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

    示例

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

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

    在index.html中输出scope的值

    [[${scope}]]

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

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

    语法

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

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

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

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

    1. <ul>
    2. <li>[[${scope}]]</li>
    3. <li>[[${session.scope}]]</li>
    4. <li>[[${application.scope}]]</li>
    5. <li>[[${param.scope}]]</li>
    6. </ul>

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

    7.3 thymeleaf内置变量的访问

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

    变量名

    说明

    #ctx

    上下文对象。

    #vars

    上下文变量。

    #locale

    上下文locale。

    #request

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

    #response

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

    #session

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

    #servletContext

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

    示例

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

    1. <ul> <li>[[${#request.getAttribute('scope')}]]</li>
    2. <li>[[${#session.getAttribute('scope')}]]</li>
    3. <li>[[${#servletContext.getAttribute('scope')}]]</li>
    4. <li>[[${#request.getParameter('scope')}]]</li></ul>

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

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

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

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

  • 相关阅读:
    yolov6-onnx + opencv-DNN
    [短链接/内推码]生成系统设计
    23种设计模式之代理模式(动态代理)
    module “QtQuick.VirtualKeyboard.Plugins“ is not installed
    [常用工具] Python视频解码库DeFFcode使用指北
    (三)SvelteKit教程:layout 文件
    Nmap 端口扫描
    BlueTeam 加固
    php mysql 后台 操作
    深度神经网络——什么是梯度下降?
  • 原文地址:https://blog.csdn.net/ouyangqing/article/details/133632277