如果没有@DateTimeFormat(pattern = “yyyy-MM-dd”)这个注解就会报下面的错误
public String test1(int id, @RequestParam("uname") String name, @DateTimeFormat(pattern = "yyyy-MM-dd") Date birthday) {
return "test:" + id + "_" + name + "_" + birthday;
}
Failed to convert value of type 'java.lang.String' to required type 'java.util.Date'; nested exception is org.springframework.core.convert.ConversionFailedExcept
或者,设置转换器
/**
* 日期转换器
*/
public class DateConvert implements Converter<String, Date> {
@Override
public Object convert(String source) {
// 使用SimpleDateFormat
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
return simpleDateFormat.parse(source);
} catch (ParseException e) {
e.printStackTrace();
throw new RuntimeException();
}
return null;
}
}
这个设置需要导入依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
设置spring.xml
<!--外部bean,可以在其他bean注入该bean-->
<bean id="dateConverter" class="com.fs.book.convert.DateConverter"></bean>
<!--配置一个转换服务的工厂bean-->
<bean id="conversionService2" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<!--转换器Bean-->
<ref bean="dateConverter"/>
</set>
</property>
</bean>
或者
<!--配置一个转换服务的工厂bean-->
<bean id="conversionService2" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<!--转换器Bean-->
<!--内部bean: 只在外部bean内部使用-->
<bean class="com.fs.book.convert.DateConverter"></bean>
</set>
</property>
</bean>
在springMVC的注解驱动上注册转换器服务ConversionServiceFactoryBean
<!--mvc的注解驱动-->
<mvc:annotation-driven conversion-service="conversionService2"/>