SpringMVC参数传递之日期类型
<a href="/demo/handle06?birthday=2019-10-08">点击测试</a>
/**
* http://localhost:8080/demo/handle06?birthday=2019-10-08
*/
@RequestMapping("/handle06")
public String handle06(Date birthday){
return "success";
}
参数转换错误。报400
自定义类型转换器:
package com.lagou.edu.converter;
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author lyj
* @Title: DateConverter
* @ProjectName springmvc-demo
* @Description: 自定义类型转换器,自定义完后需要注册
* @date 2020/6/10 23:10
*/
public class DateConverter implements Converter<String, Date> {
@Override
public Date convert(String s) {
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
Date parse = null;
try {
parse = simpleDateFormat.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
return parse;
}
}
springmvc.xml中注册
<!--
自动注册最合适的处理器映射器,处理器适配器(调用handler方法)
-->
<mvc:annotation-driven conversion-service="conversionServiceBean"/>
<!--自定义类型转换器-->
<bean id="conversionServiceBean" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.lagou.edu.converter.DateConverter"></bean>
</set>
</property>
</bean>
测试:
问题:对于同一个项目中多个日期格式的,我们可以定义多个日期转换器,但是没有必要,我们可以在DateConverter转换器中catch中捕捉异常的时候再new一个新的simpleFormat的转换对象,继续进行转换。