当我们在表单中提交的数据类型与规定数据类型不符合时springmv会为我自动转换 我们输入日期为 2000/11/22时会为我们转换为标准格式 但当我们输入2000-11-22时就会报错
这是需要我们自定义一个类型转换器
流程
* 把字符串转换成日期
* 1.创建工具类
* 2.实现Converter<String, Date>接口
* 泛型第一个为要转换的数据为什么格式 第二个是要转换成什么格式的数据
* 3.springmvc中配置自定义的类型转换器
* 4.在<mvc:annotation-driven></mvc:annotation-driven>中加入conversion-service开启自定义类型转换器
创建一个工具类
代码如下
/**
* 把字符串转换成日期
* 1.创建工具类
* 2.实现Converter<String, Date>接口
* 泛型第一个为要转换的数据为什么格式 第二个是要转换成什么格式的数据
* 3.springmvc中配置自定义的类型转换器
* 4.在<mvc:annotation-driven></mvc:annotation-driven>中加入conversion-service开启自定义类型转换器
*/
public class StringToDateConverter implements Converter<String, Date> {
/**
* 参数 s数传进来的值 也就是你要转换的值
* @param s
* @return
*/
@Override
public Date convert(String s) {
//判断 如果s==null 说明没有传进参数 报异常
if(StringUtils.isBlank(s)){
throw new RuntimeException("请传入参数");
}
DateFormat df=new SimpleDateFormat("yyyy-mm-dd");
try {
//把字符串转换成日期
return df.parse(s);
} catch (Exception e) {
throw new RuntimeException("数据类型转换出错");
}
}
}
springmvc的xml文件添加配置
<!--开启注解支持会自动配置处理器映射器,处理器适配器-->
<!--开启springmvc的注解支持 加入conversion开启自定义类型转换器-->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
测试