SpringBoot视图层技术

  • 整合jsp
  • 整合freemarker
  • 整合thymeleaf(重点)

一、SpringBoot 整合 jsp 技术
1、创建maven项目
SpringBoot视图层技术_第1张图片
SpringBoot视图层技术_第2张图片
SpringBoot视图层技术_第3张图片

2、导入相关依赖
SpringBoot视图层技术_第4张图片
SpringBoot视图层技术_第5张图片

3、创建 springBoot 的全局配置文件,application.propertie
SpringBoot视图层技术_第6张图片

4、创建controller
SpringBoot视图层技术_第7张图片

5、创建jsp
SpringBoot视图层技术_第8张图片

6、创建启动类
SpringBoot视图层技术_第9张图片

二、SpringBoot整合Freemarker
1、这里只需要在原有SpringBoot项目的基础上加上freemarker的相关依赖
SpringBoot视图层技术_第10张图片

2、编写视图,注意:Freemarker模板引擎的文件后缀名字是.ftl
SpringBoot视图层技术_第11张图片

3、创建Controller
SpringBoot视图层技术_第12张图片

4、创建启动器
SpringBoot视图层技术_第13张图片

三、SpringBoot整合Thymeleaf(重点)
1、同样、这里只需要在原有SpringBoot项目的基础上加上Thymeleaf的相关依赖
SpringBoot视图层技术_第14张图片
(1)创建存放视图的目录
目录位置:src/main/resources/templates templates:
该目录是安全的。意味着该目录下的内容是不允许外界直接访问的

2、Thymeleaf 的基本使用
(1)Thymeleaf特点
Thymelaef 是通过他特定语法对 html 的标记做渲
(2)编写 Controller
SpringBoot视图层技术_第15张图片
(3)创建视图
SpringBoot视图层技术_第16张图片
(4)编写启动类启动
SpringBoot视图层技术_第17张图片
(5)注意:如果在使用SpringBoot在页面开发时,没有th的相关提示,那么只要在html标签添加对应的Thymeleaf提示即可在这里插入图片描述

3、Thymeleaf 语法详解
(1)变量输出与字符串操作

th:text 在页面中输出值
th:value 可以将一个值放入到 input 标签的 value 中

判断字符串是否为空
Thymeleaf 内置对象
注意语法:
1、调用内置对象一定要用#
2、大部分的内置对象都以 s 结尾 strings、numbers、dates

${#strings.isEmpty(key)} 判断字符串是否为空,如果为空返回 true,否则返回 false
${#strings.contains(msg,‘T’)} 判断字符串是否包含指定的子串,如果包含返回 true,否则返回 false
${#strings.startsWith(msg,‘a’)} 判断当前字符串是否以子串开头,如果是返回 true,否则返回 false
${#strings.endsWith(msg,‘a’)} 判断当前字符串是否以子串结尾,如果是返回 true,否则返回 false
${#strings.length(msg)} 返回字符串的长度
${#strings.indexOf(msg,‘h’)} 查找子串的位置,并返回该子串的下标,如果没找到则返回-1
${#strings.substring(msg,13)} ${#strings.substring(msg,13,15)} 截取子串,用户与 jdkString 类下 SubString 方法相同
${#strings.toUpperCase(msg)} ${#strings.toLowerCase(msg)} 字符串转大小写

SpringBoot视图层技术_第18张图片

(2)日期格式化处理

方法 说明
${#dates.format(key)} 格式化日期,默认的以浏览器默认语言为格式化标准
${#dates.format(key,‘yyyy-MM-dd HH:mm:ss’)} 按照自定义的格式做日期转换
${#dates.year(key)}, ${#dates.month(key)}, ${#dates.day(key)} year:取年,,Month:取月, Day:取日

SpringBoot视图层技术_第19张图片

(3)条件判断
th:if
SpringBoot视图层技术_第20张图片
th:switch
SpringBoot视图层技术_第21张图片
相应的Controller
SpringBoot视图层技术_第22张图片
(4)迭代遍历
th:each
SpringBoot视图层技术_第23张图片
SpringBoot视图层技术_第24张图片
th:each 状态变量
SpringBoot视图层技术_第25张图片
状态变量属性
1、index:当前迭代器的索引 从 0 开始
2、count:当前迭代对象的计数 从 1 开始
3、size:被迭代对象的长度
4、even/odd:布尔值,当前循环是否是偶数/奇数 从 0 开始
5、first:布尔值,当前循环的是否是第一条,如果是返回 true 否则返回 false
6、last:布尔值,当前循环的是否是最后一条,如果是则返回 true 否则返回 false

th:each 迭代 Map
SpringBoot视图层技术_第26张图片
SpringBoot视图层技术_第27张图片
上面的编写的内容都是公用一个User实体类
SpringBoot视图层技术_第28张图片
注意:这里飘红的原因是因为没有引入th的提示文件,但是自己经过引入之后发现entry.value会飘红,且运行成功页面后,无法显示期待的效果,然后试着把提示去除就可以了

(5)域对象操作
HttpServletRequest
HttpSession
ServletContext
SpringBoot视图层技术_第29张图片
SpringBoot视图层技术_第30张图片
(6)URL 表达式

  • th:href
  • th:src
  • url 表达式语法
  • 基本语法:@{}

1.URL 类型:
绝对路径
在这里插入图片描述

2.相对路径
1)相对于当前项目的根
2)相对于项目的上下文的相对路径
SpringBoot视图层技术_第31张图片

3.在 url 中实现参数传递,两种风格
在这里插入图片描述
在这里插入图片描述
对应的Controller
SpringBoot视图层技术_第32张图片

你可能感兴趣的:(SpringBoot)