一 . 概述
在前面说参数映射的时候,有一个现象,就是前台传递的参数可以进行类型转换然后映射到后台的参数之上.
我们知道,前台传递的所有的参数都是string类型,那么这个转换的动作是说完成的呢?
答案就是类型转换器.
二 . 类型转换器
我们首先看一类型转换器的接口接口:
public interface Converter<S, T> { T convert(S source); }
这个接口就是将源类型转换为目标类型.
这个接口本身就是十分简单的.
三 . 自定义类型转换器
public class DateConverter implements Converter<String, Date>{ private static final SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd"); @Override public Date convert(String source) { //将字符串类型转换为日期类型 try { return sim.parse(source); } catch (ParseException e) { e.printStackTrace(); } return null; } }
当我们创建了一个类型转换器之后,我们就需要该类型转换器注册.
<mvc:annotation-driven conversion-service="converterService"></mvc:annotation-driven> <!-- 注册类型转换服务工厂Bean --> <bean id="converterService" class="org.springframework.context.support.ConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="com.trek.converter.DateConverter"></bean> </set> </property> </bean>
测试代码 :
@RequestMapping("/date") public String dateConverter(Date date) { System.out.println(date); return "/WEB-INF/jsp/success.jsp"; }
现在我们前台传递的日期字符串的参数就能转换到了Date类型之中.