1.问什么需要自定义类型转换器
通过JavaWeb的学习,我们知道从客户端发送的请求中参数都是以字符串的形式提交的
但有时我们需要的参数类型不是字符串,而是整数之类
字符串转整数的转换器不用我们自己来实现,SpringMVC已经帮我们继承好了
例如需要一个int类型的age参数,即使我们传入了18这个字符串,他会自动转换成int
但是还有一些类型,比如日期,SpringMVC是没有为我们提供类型转化器的,所以需要自定义类型转换器:
2.自定义类型转换器的开发流程
(一)定义转换类实现Converter接口
// 把String转成Date的类型转换器
public class DateConverter implements Converter<String, Date> {
@Override
// 在这个方法中要把字符串转换成真正的Date并返回
public Date convert(String dateStr) {
Date date = null;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
date = format.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}
(二)在spring-mvc.xml中配置转换器
<!--声明自定义的类型转换器-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.lxl.converter.DateConverter"/>
</list>
</property>
</bean>
(三)在<annotation-dirven>中引用转换器
<!--配置MVC的注解驱动-->
<mvc:annotation-driven conversion-service="conversionService"/>