SpringBoot整合SSM时,遇到的坑

java.lang.IllegalArgumentException: Attribute name cannot be null or empty:

在这里插入图片描述
在这里插入图片描述
这是一个前端错误,显示Attribute name是null:
这是我写前端登录界面时,th:和action之间多加了一个空格
在这里插入图片描述
运行时,系统按照从左到右的顺序,读取到了空格便以为时null,所以报了这个错误。

required=“required”:用户名和密码,不能为空:

这是前端HTML的必填属性,当用户不填写用户名和密码时,提示用户必须要填写,可以加上该属性:
在这里插入图片描述
它属于HTML属性:
https://www.w3school.com.cn/tags/att_input_required.asp

SpringBoot|Thymeleaf页面不能正常载入css、js文件

当我写这个前后端不分离的项目时,样式和图片都已经存放到static目录下,并且在配置文件中指名了路径,
在这里插入图片描述

但运行项目后,页面却是这样的:
在这里插入图片描述
而实际上,我应该得到一个这样的才对:
在这里插入图片描述
真真的买家秀和卖家秀;
原因是因为样式没有渲染到页面,查了半天以后,说是没有在配置文件中给springMVC指名路径:
在这里插入图片描述
SpringleMVC本身是具有页面渲染的能力的,即:View;但是thymeleaf的页面渲染比SpringMVC的渲染能力要强很多,所以现在都在使用thymeleaf来进行渲染,但是,只是在html页面加上static路径是无法在html页面调用css等的,还是要依靠在配置文件中配置SpringMVC,因为所有前端的请求,包括html中引入css样式的静态请求,都会被SpringMVC捕获,然后SpringBoot才会处理,如果不加这个配置,即使有路径,调用样式的请求被SpringMVC捕获,不放行,也无法调用css;
这里我是在properties中配置的,但是也可以在主启动类中配置:

在主启动类中通过filter过滤请求

首先创建一个filter类,并继承filter,且重写filter中的doFilter方法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里我们可以看到方法的参数中有servlet请求和响应
在这里插入图片描述
然后使用filterChain的doFilter()方法在请求中拦截想要拦截的请求,不过还需要加一个@Component注解
在这里插入图片描述
这样任何页面的访问请求都将被Filter默认过滤拦截,启动项目,刷新页面,后台会并输出“拦截”二字。
然后,在方法中拦截你想拦截的页面或者通过哪些页面:
在这里插入图片描述
当然这样写不讲究,还是要做非空判断才安全:
在这里插入图片描述
这时候,如果你没有在properties文件中配置SpringMVC引用样式,页面也会是没有渲染只有简单表单的页面,因为样式的请求也被拦截了,你需要放行。
在这里插入图片描述

SpringBoot整合SSM实现登录页面的业务流程图

在这里插入图片描述