其实前台传来的数据只有字符串类型,完全根据后台方法参数类型自行封装,只不过有些类型SpringMVC默认提供了封装的方法。
SpringMVC 默认已经提供了一些常用的类型转换器;例如:客户端提交的字符串转换成int型进行参数设置,日期格式类型要求为:yyyy/MM/dd 不然的话会报错,对于特有的行为,SpringMVC提供了自定义类型转换器方便开发者自定义处理。
前台传来的日期字符串为yyyy-MM-dd,将通过下面的自定义类型转换器封装到Date这个数据类型中。
DateConverter.java中:
/**
* 自定义Date类型转换器
*/
public class DateConverter implements Converter<String, Date> {
// s就是表单传递过来的请求参数 2012-12-12
@Override
public Date convert(String s) {
// 将日期字符串转换成日期对象,进行返回
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = simpleDateFormat.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}
在spring-mvc.xml中添加:
<!--2.mvc注解增强:处理器映射器及处理器适配器-->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
<!--自定义类型转换器配置-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.homework.converter.DateConverter"/>
</set>
</property>
</bean>