前言
身为闲不住的人,总是想搞事 但是又懒得学vue之类的前端框架技术
只好利用学学后端的一些模板引擎技术 来过过手瘾
在远古时代 可以直接用jsp来做
但是spring boot 2.x 引入webflux 这种非标准java servlet容器
jsp基本gg 官方又比较推荐thymeleaf
那就只好用用thymeleaf 玩玩
jsp拥有sitemesh 这种神器
由于 sitemesh是利用 servlet的filter来进行装饰的
thymeleaf 也有用layout 这种协助快速布局的工具
使用thymeleaf + layout布局
依赖
这里只描述核心依赖
1 | <!-- spring boot 默认配置的 thymeleaf 组件--> |
layout文件和示例html
- 在templates/layout目录下建立default.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<html lang="zh-CN"
xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout"
>
<head>
<meta charset="utf-8"/>
<title>ming</title>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
</head>
<body>
<div>
<h1>nav</h1>
</div>
<div layout:fragment="content"></div>
<div>
<h1>footer</h1>
</div>
</body>
</html> - 在templates目录下建立 content.html
两个必须要注意的地方
1: layout:fragment=”content”
2: layout:decorate=”~{layout/default}”1
2
3
4
5<div class="row" layout:fragment="content"
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/default}">
<h1>content by content.html</h1>
</div>
编写控制器
1 | package com.ming; |
访问
总结
利用layout 配合thymeleaf 达到装饰效果 跟远古时代的jsp使用sitemesh一个套路
个人练手的时候 用这个 还是很方便的