SpringMVC中自定义类型转换器
需求有一个表单包含user实体类的姓名、年龄、生日
在提交表单时:生日填写2000/1/1 SpringMVC会自动帮我们进行转换但是如果填写2000-1-1则会出现异常
自定义一个类型转换器实现生日类型转换
自定义类型转换器
1.如果想自定义数据类型转换,可以实现 Converter 的接口
public class StringToDateConverter implements Converter<String,Date> {
/**
* 自定义类型转换
* @param source 表示传入的参数
* @return
*/
@Override
public Date convert(String source) {
if (source == null){
throw new RuntimeException("参数不能为空");
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = sdf.parse(source);
} catch (Exception e) {
throw new RuntimeException("自定义类型转换异常");
}
return date;
}
}
2.注册自定义类型转换器,在springmvc.xml配置文件中编写配置
<!-- 注册自定义类型转换器 -->
<bean id="conversionServiceFactoryBean" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="cn.itcast.utils.StringToDateConverter"></bean>
</set>
</property>
</bean>
<!-- 开启springMVC 注解支持 -->
<mvc:annotation-driven conversion-service="conversionServiceFactoryBean"></mvc:annotation-driven>
配置完成即可实现需求