学习路线:
- 导入静态资源
- 首页
- jsp,模板引擎thymeleaf
- 装配扩展springMVC
- 增删查改
- 拦截器(interceptor)
文章目录
1.静态资源
优先级:resources > static > public
对应文件放置如下:
总结:在spring boot中,我们可以使用以下方式处理静态资源:
- webjars lo44 ——localhost:8080/webjars/
- public 、static、/**、resources 、localhost:8080/
2. 首页和图标定制
图标定制:
在jsp中link进图标就行:
<link rel="icon" href="/favicon.jpg">
3.jsp,模板引擎thymeleaf
模板引擎thymeleaf
1.导入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
2.将html页面放在templates下面即可:
模板引擎thymeleaf作用
写一个页面模板,有些值是动态的,用来写表达式。
4.thymeleaf使用:
- 引入上面依赖
<html lang="en" xmlns:th="http://www.thymeleaf.org">
链接资源:<link rel="stylesheet" th:href="@{/css/style.css}">
拓展使用:thymeleaf的拓展使用
遍历写法:
获取值:
server.servlet.context-path配置的作用
定义: server.servlet.context-path= # Context path of the application. 应用的上下文路径,也可以称为项目路径,是构成url地址的一部分。
- server.servlet.context-path不配置时,默认为 / ,如:localhost:8080/xxxxx
- 当server.servlet.context-path有配置时,比如 /demo,此时的访问方式为:localhost:8080/demo/xxxxxx
5. 装配扩展springMVC
- 路径映射装载:
- 添加拦截器拦截器:
//配置拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/index.html","/","/user/login","/static/**","/public/**");
}
6.拦截器(interceptor)
- 配置拦截器
- 添加拦截器:
7.Thymeleaf 提取公共页面 th:fragment
1.使用th:fragment选择自定义名称字段:
2.删除其余相同页的头部div所有信息,添加 th:insert或者th:replace:
注意:insert是添加,replace是替换,其实在删除完以后差别不大.
通常情况下是把模板写入templates文件夹下建立的文件夹里的页面中
<div th:replace="~{commons/commons::topbar}"></div>
8.增删改查
1.光标高亮显示
-
主要是为了光标显示到我们点击到的地方
-
如果要传递参数,th后面用()传参:
-
对所在页面进行判断,如果是显示样式中的高亮,不是就显示普通样式
列表代码遍历
从controller传递数据后进行遍历:
转换日期代码:<td th:text="${#dates.format(emp.getBirth(),'yyyy-MM-dd hh:mm:ss')}"></td>
添加用户信息
- 首先使用@GetMapping("")注解返回想要的数据提交到添加表单上
- 然后使用@PostMapping("")注解进行添加,然后重定向到查询页面进行遍历显示
- form提交表单使用post请求:
<form th:action="@{/create}" method="post" >
修改信息
-
首要任务是将用户信息遍历到修改信息框中:
-
传递id到controller去进行查询数据:
不报红写法:th:href="@{'/emp/'+${emp.getId()}}"
-
控制器接收参数,利用@PathVariable注解将占位符参数绑定到方法中:
若参数名和占位符参数一样,可以不用写括号,直接注解然后类型参数名。
更多详细解释—>@PathVariable整体描述 -
将传递model中的数据写入修改框中:
隐藏域:<input type="hidden" name="id" th:value="${emp.getId()}" >
主要是时间格式要设置正确:
-
最后再进行form表单提交,然后修改后重定向到list再进行遍历查询一遍。
9.404、500等错误页面
- 在templates下创建error文件夹:
- 文件夹下创建对应的页面,出现相应错误即可跳转:
10.退出登录
- 主要是清除session:
session.invalidate()