SpringBoot(二)——整合视图层(FreeMarker、Thymeleaf、SpringBoot 整合 jsp)

SpringBoot(二)——整合视图层(FreeMarker、Thymeleaf、SpringBoot 整合 jsp

一、FreeMarker

1、页面模板介绍

前后端不分离开发,除了前面经常用的 jsp ,还有 Freemarker、Thymeleaf。前后端虽说基本不需要模板了,但不是一定不需要,比如像是邮箱功能,或者登录注册验证码,这些还是有可能使用模板页面的。

2、Freemarker入门

a、Freemarker简介

在这里插入图片描述
看上图,可以发现跟 jsp 的使用方式差不多。

b、Freemarker创建

在这里插入图片描述

先看下 freemarker 的依赖:
在这里插入图片描述

然后是创建 freemarker 的文件:
在这里插入图片描述
在这里插入图片描述

然后 java 代码:
在这里插入图片描述

c、Freemarker 插值与表达式——直接输出值

(1)字符串:

在这里插入图片描述

如果要输出斜杠 \ ,则需要转义:
在这里插入图片描述
这里输出的就是: c:\work
如果不转义,就会报错。

如果需要转义的个数很多,可以在最前面加个 r :
在这里插入图片描述

(2)数字:

在这里插入图片描述
效果:
在这里插入图片描述

(3)布尔类型:

Freemarker 中不能直接展示布尔类型的值:
在这里插入图片描述
当为 true 时,展示真,为 false时,展示假。

(4)集合

在这里插入图片描述
效果:
在这里插入图片描述

(5)map

在这里插入图片描述
效果:
在这里插入图片描述

d、Freemarker 插值与表达式——输出变量

(1)对象

先创建一个实体类:
在这里插入图片描述

然后 controller 层代码:
在这里插入图片描述
然后前端:
在这里插入图片描述

效果:
在这里插入图片描述

也可以直接展示集合中第二个元素:
在这里插入图片描述

(2)map

在这里插入图片描述
前端:
在这里插入图片描述

效果:
在这里插入图片描述

如果要取 key 值跟 value 值的话:

在这里插入图片描述

效果:
在这里插入图片描述

e、字符串操作

在这里插入图片描述
然后前端:
在这里插入图片描述

效果:
在这里插入图片描述

f、比较运算

在这里插入图片描述

g、空值处理

在 Freemarker 中如果值不存在或者存在,但是为 null,都是会报错的。

解决方式:
笨办法,用判断语句,如果判断不为 null,则输出:
在这里插入图片描述
还有种写法就是,如果 值 不存在,则展示后面的内容:
在这里插入图片描述

再有就是,如果不存在,则不展示:
在这里插入图片描述

在这里插入图片描述

3、Freemarker 内建函数

内建函数涉及到的东西比较多,可以参考官方文档:http://freemarker.foofun.cn/ref_builtins.html

在这里插入图片描述
这里举例子一些常用的:
在这里插入图片描述
在这里插入图片描述
日期如果不格式化会报错,相当于强制性的要格式化。

4、Freemarker 常用指令

a、分支控制指令——if else

由于前端的标签都用到 <> 尖括号,且大于小于号 < >,用的都是同一个符号,所以如果要用这个符号就需要转义,或者使用 gt 这种,如果都不想使用,可以这么用:
在这里插入图片描述

b、分支指令——switch

在这里插入图片描述在这里插入图片描述

c、include

在这里插入图片描述

d、宏——macro

macro 用来定义一个宏。

那么宏怎么定义和使用呢?

先定义一个宏:
在这里插入图片描述

第一步先导入宏,接着就是使用:
在这里插入图片描述

然后效果:
在这里插入图片描述

看起来跟 include 没区别,但有其他用法:

java 代码:
在这里插入图片描述
接着 宏的代码:
在这里插入图片描述
将来展示什么内容就看传进来的是什么参数了。

在这里插入图片描述
如果 java 代码没有传 bs 进来,就会报错。

然后运行看效果:
在这里插入图片描述

e、nested——占位符

如果想要展示一段比较复杂的 html 结构,用上面的方法就没法整了,就需要通过这个来完成。要展示的 html 是什么样子,还不确定,就要看将来传的什么参数。

那么怎么传呢,就在上面讲的宏里面传参数,参数就会跑到这个占位符这里来:

在这里插入图片描述

在这里插入图片描述

然后效果:
在这里插入图片描述

f、noparse——禁止渲染

如果就想要输出字符串,不需要 Freemarker 渲染,则使用 noparse 标签:
在这里插入图片描述

效果:
在这里插入图片描述

二、FreeMarker 整合 SpringBoot 其他配置

1、整合

在 application . properties 文件里面配置:
在这里插入图片描述

像以前 jsp 中往 request 或者 session 中存属性,这里就需要设置暴露属性,然后再通过美元符号 $ 调用属性名即可。

如果 request 和 session 里面存的属性名冲突了,使用哪一个就看怎么配置,是否允许覆盖。

三、Thymeleaf

1、Thymeleaf简介

在这里插入图片描述
在这里插入图片描述
Thymeleaf 可以通过浏览器直接打开预览,且后缀也是 . html

2、Thymeleaf 的创建

在这里插入图片描述
在这里插入图片描述

3、Thymeleaf 的初步使用

在这里插入图片描述

在这里插入图片描述
java 代码:
在这里插入图片描述

效果:
在这里插入图片描述

4、名称空间

在以前版本比较旧的时候,需要写完整标签,标签要结束。且要导入名称空间,不然就不能运行:
在这里插入图片描述

5、Thymeleaf整合 SpringBoot 其他配置

在这里插入图片描述

6、手动渲染 HTML

在这里插入图片描述

7、Thymeleaf 基本表达式

a、简单表达式

在这里插入图片描述

如果是有个 user 对象,展示里面的属性,就这么写:
在这里插入图片描述

b、URL 相关

一般静态资源写 url 时,都推荐写绝对路径:
在这里插入图片描述
其他用法:
在这里插入图片描述在这里插入图片描述

c、片段表达式

片段表达式的一个好处是颗粒度够细,能查找使用指定的片段:
在这里插入图片描述
举个例子:
在这里插入图片描述
在这里插入图片描述
然后效果:
在这里插入图片描述

8、内置对象

还是 session request 那些玩意:
在这里插入图片描述

9、设置属性值

在这里插入图片描述

10、遍历

在这里插入图片描述

11、分支语句——if

在这里插入图片描述
if 也能这么使用:
如果某个数组的个数为 10 个,则显示这个文字。
在这里插入图片描述

在这里插入图片描述

12、本地变量

这个我们前面已经涉及到了,使用 th : with 可以定义一个本地变量。

13、内联(了解)

在这里插入图片描述

四、SpringBoot 整合 jsp

1、整合

整合 jsp 跟以前的操作是基本一样的。
在这里插入图片描述
然后需要手动加入 jsp 依赖:
在这里插入图片描述
然后手动创建 webapp:
在这里插入图片描述
接着就是以前那样,在项目文件夹那里按 F4,然后按照以前的操作即可。

做完上面操作,右键才有创建 jsp 的选项。

接着就是 jsp 的前缀后缀配置:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值