SpringMVC 实现日期转换器
springmvc 默认是不支持字符串直接转换成Date类型的,需要通过其他实现日期的转换
两种方式:
- 1、使用注解
注解方式:
@DateTimeFormat(pattern = "yyyy-MM-dd")
这个注解加到需要转换的属性上
但是如果你的项目中又多个需要做时间转换的属性的话,那么使用注解就会比使用xml配置全局的要繁琐一些。所以看情况使用哪种方式。
-
2、实现Converter接口
- 使用@Component 注解
@Component
public class StringToDateConvert implements Converter<String, Date> {
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@Override
public Date convert(String s) {
Date date = null;
try {
date = sdf.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}
- 在springmvc.xml文件中注册一个转换器
<!--2.把转换器对象放入SpringMVC转换器工厂中-->
<!--2.把转换器对象放入SpringMVC转换器工厂中-->
<bean id="conversionServiceFactory" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="com.jsu.web.converter.StringToDateConvert"/>
</set>
</property>
</bean>
- 将转换器注册到注解驱动中
<!--开启注解驱动-->
<mvc:annotation-driven conversion-service="conversionServiceFactory"/>
- 测试
@ResponseBody
@RequestMapping("/formatConverter")
public Date formatConverter (Date date) {
System.out.println(date);
return date;
}