在Spring3 mvc中从前台到后台传递数据中如果包括日期类型的话,一般会报错: org.springframework.validation.BindException
解决方法:
1、新建java日期转换类DateConverter
package com.sunney.commons; import java.text.SimpleDateFormat; import java.util.Date; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.support.WebBindingInitializer; import org.springframework.web.context.request.WebRequest; /** * Description: * spring3 mvc 的日期传递[前台-后台]bug: * org.springframework.validation.BindException * 的解决方式.包括xml的配置 * @author LiChunming * @version V1.0 * @createDateTime:2013-2-1 下午02:04:04 * @Company: MSD. * @Copyright: Copyright (c) 2011 **/ public class DateConverter implements WebBindingInitializer { @Override public void initBinder(WebDataBinder binder, WebRequest request) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); binder.registerCustomEditor(Date.class, new CustomDateEditor(df,false)); } }
2、applicationContext.xml 配置
1 <context:component-scan base-package="com.sunney" /> 2 <!-- 日期转换 必须放在<mvc:annotation-driven />前面 --> 3 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 4 <!-- 日期格式转换 --> 5 <property name="webBindingInitializer"> 6 <bean class="com.sunney.commons.DateConverter" /> 7 </property> 8 </bean> 9 <mvc:annotation-driven />
3、applicationContext.xml 还得新增配置
xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
否则会报:The prefix "mvc" for element "mvc:annotation-driven" is not bound