您的位置:首页 > 编程语言 > Java开发

SpringMVC配置全局日期转换器

2017-08-22 11:09 447 查看
spring3.0配置日期转换可以通过配置自定义实现WebBingingInitializer接口的一个日期转换类来实现,方法如下

转换类:

public class DateConverter implements WebBindingInitializer {

public void initBinder(WebDataBinder binder, WebRequest request) {
SimpleDateFormat df = newSimpleDateFormat("yyyy-MM-dd");
binder.registerCustomEditor(Date.class, new CustomDateEditor(df, false));
}
}


在spring-servlet.xml当中的进行注册:

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<!-- 日期格式转换 -->
<property name="webBindingInitializer">
<bean class="DateConverter" />
</property>
</bean>


spring3.1.1的处理进行调整,所以按照3.0的写法在3.1.1里面是无效的,正确的写法如下

<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<list>
<bean
class="com.doje.XXX.web.DateConverter" />
</list>
</property>
</bean>


其中class=”com.doje.XXX.web.DateConverter” 是自定义的日期转换器类,

下一步:

需要修改spring service context xml配置文件中的annotation-driven,增加属性conversion-service指向新增的conversionService bean。

<mvc:annotation-driven conversion-service="conversionService" />


自定义的converter如下

public class DateConverter implements Converter<String, Date> {
@Override
public Date convert(String source) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
try {
return dateFormat.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc