1 数据类型导致未封装数据

页面提交的任何数据都是字符数类型的。
其实是SpringMVC自动的进行数据类型转换
(7)SpringMVC - 自定义类型转换器

但是有时候转换不了
比如 2019/5/1 -> SpringMVC可以自动的把你转换成日期
如果我们写成 2019-5-1 一提交数据就可能报错了。 日期自动转换不了,默认不支持这个格式

==那么怎么解决?==

进行如下代码实验,在User这个类中添加属性Data data;
(7)SpringMVC - 自定义类型转换器

(7)SpringMVC - 自定义类型转换器

(7)SpringMVC - 自定义类型转换器
结果显示,访问成功!!!
(7)SpringMVC - 自定义类型转换器

(7)SpringMVC - 自定义类型转换器

但是我们换成:(显示报错)
(7)SpringMVC - 自定义类型转换器

(7)SpringMVC - 自定义类型转换器

显示报错,400 ,说明数据封装这一片出错误了,数据都没有封装进去

2 解决办法: 自定义类型转换器

使用步骤:

  1. 定义一个类:实现Converter接口,该接口有两个泛型
  2. 在Spring配置文件中配置类型转换器
  3. 在annotation-driven标签中引用配置的类型转换服务

1 首先第一步 , 我们按住Ctrl+n,搜索Converter

(7)SpringMVC - 自定义类型转换器
接口中有两个参数!!!
(7)SpringMVC - 自定义类型转换器

我们创建一个类:
(7)SpringMVC - 自定义类型转换器
在Date处按住Alt+Enter 依次添加方法和import class
(7)SpringMVC - 自定义类型转换器
(7)SpringMVC - 自定义类型转换器
(7)SpringMVC - 自定义类型转换器
(7)SpringMVC - 自定义类型转换器

2 配置自定义类型转换器

我们到springmvc.xml底下配置组件

(7)SpringMVC - 自定义类型转换器

我们配置好组件之后,和我们写的类型转换的类还没有关联?
那么怎么关联呢?

在组件中注册转换器

粘贴这个类的全路径
(7)SpringMVC - 自定义类型转换器

(7)SpringMVC - 自定义类型转换器

组件配置完成之后,我们让这个组件生效

annotation-driver :把处理器和适配器组件都生效

(7)SpringMVC - 自定义类型转换器
运行结果,成功!!!!
(7)SpringMVC - 自定义类型转换器

(7)SpringMVC - 自定义类型转换器

相关文章: