SpringBoot-Web开发-6
Thymeleaf 公共页面元素抽取
list页面和主页面的侧边栏和顶部都相同,我们是不是应该将它抽取出来呢?
- 抽取公共片段 th:fragment 定义模板名 
- 引入公共片段 th:insert 插入模板名 
我们来抽取一下,使用list列表做演示!我们要抽取头部,nav标签
为了重用更清晰,我们建立一个commons文件夹,专门存放公共页面

除了使用insert插入,还可以使用replace替换,或者include包含,三种方式会有一些小区别,可以见名知义;
我们使用replace替换,可以解决div多余的问题,可以查看thymeleaf的文档学习
将主页面中和list页面中的侧边栏和顶部代码删除后,我们去页面中引入一下。
<div th:replace="~{commons/commons::topbar}"></div>
<div th:replace="~{commons/commons::sidebar}"></div>

解决我们侧边栏激活问题!
- 侧边栏激活样式是一个class名叫active所控制的 
- 将首页的超链接地址改到项目中 
- 我们在a标签中加一个判断,使用class改变标签的值 


其他的同理
员工管理
将主页中的Customers改名为员工管理。点击发送请求查询所有员工信息,成功查询之后转发到list页面中,在list页面中同样引入侧边栏和顶部栏。

控制器

list页面遍历我们的员工信息!顺便美化一些页面,增加添加,修改,删除的按钮


添加员工
- 将添加员工信息改为超链接  
- 编写对应的controller  
- 添加前端add页面,复制list页面,修改即可。加入了bootstrap的表单样式  
- 当前端页面提交时,编写对应的controller  
- 前端填写数据,注意时间问题  - 点击提交,后台输出正常!页面跳转及数据显示正常 - 由于目前很多富文本编辑器提供的日期选择格式都是yy-MM-dd(2020-02-20)所以当我们换一个时间格式提交时  - 发现页面出现了400错误!  - 生日我们提交的是一个日期 , 我们第一次使用的 / 正常提交成功了,后面使用 - 就错误了,所以这里面应该存在一个日期格式化的问题; - SpringMVC会将页面提交的值转换为指定的类型,默认日期是按照 / 的方式提交 。 比如将2019/01/01 转换为一个date对象。 - 那思考一个问题?我们能不能修改这个默认的格式呢? - 我们去看webmvc的自动配置文件;找到一个日期格式化的方法,我们可以看一下  - 这个在配置类中,所以我们可以自定义的去修改这个时间格式化问题,我们在我们的配置文件中修改一下    
员工修改
我们要实现员工修改功能,需要实现两步
- 点击修改按钮,去到编辑页面,我们可以复制使用添加员工的add页面为upadate页面实现
- 显示原数据,修改完毕后跳回列表页面
首先在list页面中修改跳转链接的位置

编写对应的controller

update页面


update对应的controller





删除员工
list页面,编写提交地址

编写Controller

测试


定制错误页面
我们只需要在模板目录下添加一个error文件夹,文件夹中存放我们相应的错误页面,比如404.html 或者 4xx.html 等等,SpringBoot就会帮我们自动使用了!


注销功能
来到顶部导航栏中的代码

编写对应的controller

测试


测试地址
| 账号 | 密码 | 
|---|---|
| 任意 | 123456 | 












