SpringBoot视图层技术

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

一、SpringBoot 整合 jsp 技术
1、创建maven项目
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、导入相关依赖
在这里插入图片描述
在这里插入图片描述

3、创建 springBoot 的全局配置文件,application.propertie
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190519203233325.png

4、创建controller
在这里插入图片描述

5、创建jsp
在这里插入图片描述

6、创建启动类
在这里插入图片描述

二、SpringBoot整合Freemarker
1、这里只需要在原有SpringBoot项目的基础上加上freemarker的相关依赖
在这里插入图片描述

2、编写视图,注意:Freemarker模板引擎的文件后缀名字是.ftl
在这里插入图片描述

3、创建Controller
在这里插入图片描述

4、创建启动器
在这里插入图片描述

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

2、Thymeleaf 的基本使用
(1)Thymeleaf特点
Thymelaef 是通过他特定语法对 html 的标记做渲
(2)编写 Controller
在这里插入图片描述
(3)创建视图
在这里插入图片描述
(4)编写启动类启动
在这里插入图片描述
(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)}字符串转大小写

在这里插入图片描述

(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:取日

在这里插入图片描述

(3)条件判断
th:if
在这里插入图片描述
th:switch
在这里插入图片描述
相应的Controller
在这里插入图片描述
(4)迭代遍历
th:each
在这里插入图片描述
在这里插入图片描述
th:each 状态变量
在这里插入图片描述
状态变量属性
1、index:当前迭代器的索引 从 0 开始
2、count:当前迭代对象的计数 从 1 开始
3、size:被迭代对象的长度
4、even/odd:布尔值,当前循环是否是偶数/奇数 从 0 开始
5、first:布尔值,当前循环的是否是第一条,如果是返回 true 否则返回 false
6、last:布尔值,当前循环的是否是最后一条,如果是则返回 true 否则返回 false

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

(5)域对象操作
HttpServletRequest
HttpSession
ServletContext
在这里插入图片描述
在这里插入图片描述
(6)URL 表达式

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

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

2.相对路径
1)相对于当前项目的根
2)相对于项目的上下文的相对路径
在这里插入图片描述

3.在 url 中实现参数传递,两种风格
在这里插入图片描述
在这里插入图片描述
对应的Controller
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值