前提:由于日期类型有很多种格式,springmvc无法将字符串转换成日期类型,所以需要我们根据业务需求自定义参数绑定!
- 第一步:自定义参数绑定器---根据适配器参数绑定器的编码要求规范开发bean
package com.cyn.ssm.converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.core.convert.converter.Converter;
/*自定义的参数绑定器-日期类型转换器
*根据适配器参数绑定器的要求规范开发
*编写规范:实现Converter<>接口
*String:要转换的源数据类型
*Date:目标数据类型
*/
public class DateConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
//1.定义我们要转成的日期类型(格式是:yyyy-MM-dd HH:mm:ss)
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
//2.进行转化,转化成功直接返回
return simpleDateFormat.parse(source);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//3.如果参数绑定失败返回null
return null;
}
}
- 第二步: 配置参数绑定器---在springmvc的核心配置文件中注册该参数绑定bean到spring容器
<!-- 自定义参数绑定器 -->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<!-- 转化器 -->
<property name="converters">
<list>
<!-- 自定义日期类型的转化实现类 -->
<bean class="com.cyn.ssm.converter.DateConverter"></bean>
</list>
</property>
</bean>
- 第三步: 处理器是由适配器执行的,所以需要在springmvc的核心配置文件中向处理器适配器注入自定义的参数绑定组件bean
<!-- 配置注解驱动:基于注解的映射器和适配器配置 -->
<mvc:annotation-driven conversion-service="conversionService"/>