这章考的内容不多
Thymleaf是什么
为Springboot官方推荐使用的模板引擎,创建的模板可维护性非常高。
使开发人员能够在设计原型不变的情况下,将程序和逻辑注入文件模板中。
特点:
1.动静结合
Thymeleaf可以查看页面的静态效果和动态页面效果。如果直接使用浏览器打开模板文件,浏览器会忽略未定义的 Thymeleaf标签属性,展示 Thymeleaf模板文件的静态页面效果:当通过 Web应用程序访问模板文件时,Thymeleaf 会根据获取到的数据对文件进行渲染,使页面进行动态显示。
2.开箱即用Thymeleaf 提供了 Spring标准方言,以及与 Spring MVC完美集成的可选模块,可以快速地实现表单绑定、属性编辑器、国际化等功能。
3.多方言支持
Thymeleaf 是可扩展的模板引擎,提供了 Thymeleaf标准和 Spring标准方言,可以直接套用模板实现JSTL、OGNL表达式。如果用户希望在利用库的高级特性的同时定义自己的处理逻辑,则可以定义自己的方言
4.与Springboot完美整合
Spring Boot为Thymeleaf整合提供了自动配置支持,并且为他设置了视图解析器。
Thymeleaf 常用的 th 属性
属性 作用
th:each 用于遍历,可以遍历集合、数组等对象。
th:if 根据条件判断是否需要展示此标签
th:unless 和 th:if 判断相反,满足条件时不显示
th:switch 与 Java 的 switch 语句类似,通常与 th:case 配合使用,根据不同的条件展示不同的内容
th:case 条件判断,进行选择性匹配
th:object 用于绑定数据对象
th:with 定义局部变量
th:action 表单提交地址
th:attr 动态拼接属性值
th:onclick 绑定鼠标单击事件
th:value 替换 value 属性的值
th:href 用于设定链接地址
th:src 用于替换 src 属性的值 ,设定链接地址
th:text 文本替换,转义特殊字符
th:utext 文本替换,不转义特殊字符
th:fragment 声明片段,类似 JSP 的 tag ,用来定义一段被引用或包含的模板片段
th:insert 用于指定在模板中插入其他模板片段,类似 JSP 中的 include 标签,
可以通过 th:fragment 属性定义要被替换进来的片段
th:replace 用于将指定位置的内容替换为指定的模板片段,可以通过
th:fragment 属性定义要被替换进来的片段
th:block 创建区域块,如果内容为空则不创建
变量表达式
Thymeleaf 标准表达式主要分为变量表达式、选择表达式、消息表达式、链接表达式
、分段表达式
变量表达式
<p th:text="${title}"> 这是标题 </p>
<p th:text="${user.name}"> 这是标题 </p>
<p th:text="${user.info()}"> 这是标题 </p>
Thymeleaf 为变量所在域提供了一些内置对象。
#ctx :上下文对象。
#vars :上下文变量。
#locale :上下文语言环境。
#request : HttpServletRequest 对象,仅在 Web 应用中可用。
#response : HttpServletResponse 对象,仅在 Web 应用中可用。
#session : HttpSession 对象,仅在 Web 应用中可用。
#servletContext : ServletContext 对象,仅在 Web 应用中可用
选择表达式
Thymeleaf 中使用 *{} 包裹内容的表达式被称为选择表达式,选择表达式与变量表达式功能基本一致
,只是选择表达式计算的是绑定的对象,而不是整个环境变量映射。标签中通过“ th:object” 属性
绑定对象后,可以在该标签的后代标签中使用选择表达式( *{...} )访问该对象中的属性,其
中,“ *” 即代表绑定的对象
<div th:object="${user}" >
<p th:text="*{username}">name</p>
</div>
消息表达式
Thymeleaf 中使用 #{} 包裹内容的表达式被称为消息表达式,消息表达式可以显示静态文本的内容,
通常与 th:text 属性一起使用。消息表达式显示的内容通常是读取配置文件中信息,在 #{} 中指定配置
文件中的 Key ,则会在页面中显示配置文件中 Key 对应的 Value 。
<p th:text="#{location}"></p> 读取项目 Properties 配置文件
链接表达式
分段表达式
不用看
第四章题目
一、填空题
1.Thymeleaf的 th:if 属性根据条件判断是否需要展示此标签。
2.Thymeleaf中使用 ${} 包裹内容的表达式被称为变量表达式。
${} ->变量 *{}->选择 #{} 消息 @{} 地址
3.使用Thymeleaf 变量 表达式可以访问容器上下文中的变量。
4.Thymeleaf的选择表达式计算的是 绑定的对象 。
5.Spring Boot整合Thymeleaf后,模板文件的默认后缀为 .html 。
二、判断题
1.Thymeleaf是采用Java语言编写的模板引擎。 (对 )
2.Thymeleaf的th属性可以直接在HTML标签中使用。 (对 )
3.Thymeleaf的th:each属性用于遍历,可以遍历集合、数组等对象。 ( 对)
4.Thymeleaf 默认会在/resources/templates/目录下根据模版名查找对应的模板文件。 (对 )
5. 链接表达式中包裹的内容可以是绝对URL或相对URL地址。( 对)
三、选择题
1.下列选项中,关于Thymeleaf的描述错误的是(A)。
A.Thymeleaf是采用Python语言编写的模板引擎。
B.Thymeleaf可用于非Web环境中的应用开发。
C.Thymeleaf浏览器可以直接打开模板文件。
D.Thymeleaf是Spring Boot官方推荐使用的模板引擎。
解析:
Thymeleaf是采用Java语言编写的模板引擎。
2.下列选项中,对于Thymeleaf的特点描述错误的是(B)。
A.Thymeleaf提供了Spring标准方言。
B.如果直接使用浏览器打开模板文件,浏览器不解析未定义的Thymeleaf标签属性,导致页面打开错误。
C.Thymeleaf可以创建自己的方言。
D.Spring Boot为Thymeleaf整合提供了自动配置支持。
解析:
如果直接使用浏览器打开模板文件,浏览器会忽略未定义的 Thymeleaf标签属性,展示 Thymeleaf模板文件的静态页面效果:
3.下列选项中,用于根据条件判断是否需要展示当前标签的Thymeleaf属性是(B)。
A.th:each B.th:if C.th:value D.th:object
4.下列选项中,对于Thymeleaf的内置对象描述错误的是(D)。
A.#request对应HttpServletRequest对象。
B.#response对应HttpServletResponse对象。
C.#session对应HttpSession对象。
D.#servletContext对应上下文变量。 vars对应上下文变量
解析:
Thymeleaf 为变量所在域提供了一些内置对象。
#ctx :上下文对象。
#vars :上下文变量。
#locale :上下文语言环境。
#request : HttpServletRequest 对象,仅在 Web 应用中可用。
#response : HttpServletResponse 对象,仅在 Web 应用中可用。
#session : HttpSession 对象,仅在 Web 应用中可用。
#servletContext : ServletContext 对象,仅在 Web 应用中可用
5.下列选项中,关于Thymeleaf的表达式描述错误的是( B)。
A.变量表达式中也使用内置对象直接访问内置对象的属性。
B.选择表达式是对整个应用环境的变量进行映射。
C.在#{}中指定配置文件中的Key,则会在页面中显示配置文件中Key对应的Value。
D.Thymeleaf会将链接表达式中开头的斜杠(/),解析为当前工程的上下文路径ContextPath。
解析:
只是选择表达式计算的是绑定的对象,而不是整个环境变量映射