这里是日期格式转换问题,springMVC自带的转换器只能实现一些基础的类型转换,如int转成double。
所以这需要我们自己来编写一个转换器类。代码如下:
package cn.my.common;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.core.convert.converter.Converter;
import org.springframework.format.support.FormattingConversionServiceFactoryBean;
/*
* 日期转换
*
* S就是source:要转换的数据
* T即是类型:转换之后的类型
*/
public class DateDonvert implements Converter<String, Date>{
//转换
public Date convert(String arg0) {
Date date=null;
try {
// 格式要对应上页面上的日期格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
date=sdf.parse(arg0);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//FormattingConversionServiceFactoryBean
return date;
}
}
编写完成之后还需要在xml文件中配置并使用:
<!-- 使用自定义的转换器 -->
<mvc:annotation-driven conversion-service="MyConvert" />
<!-- 配置日期转换器 -->
<bean id="MyConvert" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="cn.my.common.DateDonvert"></bean>
</set>
</property>
</bean>
这样就OK了。