Spring mvc 3 视图页面传日期到controller层

在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

 

posted @ 2013-02-01 14:27  sunney  阅读(1026)  评论(0编辑  收藏  举报