thymeleaf的详解

1、thymeleaf渲染标签中文本内容

在标签中使用th:text

2、thymeleaf渲染标签中属性

在标签中使用th:属性

3、thymeleaf解析URL路径

th:href=“@{/}”,此时路径被thymeleaf解析之后,会自动添加上下文路径

如何在thymeleaf解析的路径中传输请求参数:

<a th:href="@{/firstServlet(username='admin',password='123456')}">测试Thymeleaf解析路径时发送请求参数</a>
<a th:href="@{/firstServlet?username=admin&password=123456}">测试Thymeleaf解析路径时发送请求参数</a>

4、域对象

4.1、请求域

类型:HttpServletRequest

范围:一次请求

获取方式:Servlet中的service()提供

应用场景:展示错误提示信息、列表功能、修改回显

4.2、会话域

类型:HttpSession

范围:一次会话(浏览器开启到浏览器关闭)

获取方式:request.getSession()

应用场景:记录用户的登录状态,书城项目中的购物车功能

4.3、应用域

类型:ServletContext

范围:整个web应用

获取方式:request.getServletContext()和session.getServletContext()

应用场景:Spring框架的IOC容器会共享到应用域中

4.4、域对象操作共享数据的方式

void setAttribute(String name, Object value):设置共享的数据

Object getAttribute(String name):获取共享的数据

void removeAttribute(String name):删除共享的数据

4.5、测试各个域对象的范围

a>通过FirstServlet向各个域对象共享数据,在页面中获取,观察获取情况

b>通过FirstServlet向各个域对象共享数据,通过SecondServlet跳转到页面,在页面中获取,观察获取情况

c>通过FirstServlet向各个域对象共享数据,之后关闭浏览器,在通过SecondServlet跳转到页面,在页面中获取,观察获取情况

d>通过FirstServlet向各个域对象共享数据,之后关闭服务器,在通过SecondServlet跳转到页面,在页面中获取,观察获取情况

注意:

会话域中的数据只跟浏览器是否关闭有关,跟服务器是否关闭没有关系

应用域中的数据只跟服务器是否关闭有关,跟浏览器是否关闭没有关系

4.5、thymeleaf获取各个域对象中的数据

获取请求域中的数据–>${属性名}

获取会话域中的数据–>${session.属性名}

获取应用域中的数据–>${application.属性名}

5、获取请求参数

${param.请求参数名},相当于request.getParameter(“请求参数名”);

若使用此方式获取多个同名的请求参数,则获取的是一个数组

6、thymeleaf的内置对象

#request相当于request对象

#lists操作集合的工具对象,例如其中的方法isEmpty()判断某个集合是否为空(null或长度为0)

7、通过OGNL获取对象的属性

对象.属性

对象[属性]

8、通过OGNL获取map中的数据

map.key

map[key],若key是纯数字,则只能使用该方式

9、分支

th:if=“条件”,若添加为true,则该属性所在的标签会在页面中存在

th:unless=“条件”,若添加为false,则该属性所在的标签会在页面中存在

10、迭代

th:each=“变量 : 集合”,需要循环哪个标签,就需要将该属性写在哪个标签中,就可以在该标签中使用变量表示集合中的每个数据

th:each=“变量,status : 集合”,status表示循环的辅助对象,常用属性:

count:当前循环的次数

index:当前循环的索引

first:当前循环是否为第一次循环

last:当前循环是否为最后一次循环

11、thymeleaf包含其他模板文件

a>为公共模块起名

<div th:fragment="hello">
  <h1>hello,thymeleaf</h1>
</div>

b>引用公共模块

th:include=“公共模块所在页面的逻辑视图 :: 公共模块的名字”:将公共模块中的内容引入到当前标签中

th:insert=“公共模块所在页面的逻辑视图 :: 公共模块的名字”:将公共模块本身的标签引入到当前标签中

th:replace=“公共模块所在页面的逻辑视图 :: 公共模块的名字”:将公共模块本身的标签替换当前标签

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力奋斗的JAVA小余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值