目录
DAO层模拟数据库
设置拦截器
前端代码的抽取复用
thymeleaf的实际应用
if三元关系表达式的使用
#dates的使用
th:href 带有参数的形式
springboot 404页面的设置
用户注销
表单:日期数据上传
DAO层模拟数据库
使用map集合存储即可,增删改查均是对map的操作
@Repository
public class departemtDao {
private static Mapmap=null;
static {
map=new HashMap();
map.put(1,new department(1,"教育部"));
map.put(2,new department(2,"学生部"));
map.put(3,new department(3,"后勤部"));
}
//通过id查询
public department getById(Integer id){
department department = map.get(id);
return department;
}
//查询所有
public Collection findAll(){
Collection values = map.values();
return values;
}
}
设置拦截器
当不登陆时,不允许访问其它页面
自定义拦截器
public class LoginHandlerInterceptor implements HandlerInterceptor {
// 重写方法,根据条件判断是否放行
// 判断条件 session中loginUser属性是否为空
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
Object loginUser = request.getSession().getAttribute("loginUser");
if(loginUser==null){
request.setAttribute("msg","请先进行登录");
request.getRequestDispatcher("/index.html").forward(request,response);
return false;
}else {
return true;
}
}
}
在mvcConfig中配置拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new LoginHandlerInterceptor())
.addPathPatterns("/**")
.excludePathPatterns("/index.html","/","login.html","/css/**","/js/**","/img/**","/fonts/**","style.css","favicon.ico","/login");
}
- 拦截的路径是/**
- 释放的路径是 静态资源、登录页面、以及涉及到的url
前端代码的抽取复用
将共同的代码抽取到一个html中,文件是commons/common.html
注意
- 不需要使用head、body标签
- 使用的属性是th:fragment
复用代码
使用的属性是th:replace 语法是~{ }
thymeleaf的实际应用
if三元关系表达式的使用
根据数据判断性别,进行相应的回显
#dates的使用
为日期类规定格式进行回显
th:href 带有参数的形式
转发的同时,还要把id传过去
编辑
访问的路径是:http://localhost:8080/update.html?id=1001
springboot 404页面的设置
- 在templates文件夹下创建error文件
- 在该文件夹内添加404.html
完成这两步就可以,springboot就会自动配置了
运行效果图
用户注销
原理:清空session
@GetMapping("/loginout")
public String logout(HttpSession session){
session.invalidate();
return "redirect:/index.html";
}
表单:日期数据上传
使用html原生方式
提交表单后,后台获取数据,需要使用注解进行日期格式的转换
@Data @AllArgsConstructor @NoArgsConstructor
public class staff {
private Integer id;
private String name;
private String email;
private Integer sex;
private department department;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birth;
}


