前后台时间格式不对,我们可以通过自定义类型转换器,要向自定义类型转换器,需要创建一个类实现Converter接口,并且需要注册该自定义类型转换器。
(1)创建类型转换器
创建自定义类型转换器,代码如下:
package com.sen.util;
import org.springframework.core.convert.converter.Converter;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateConverter implements Converter<String,Date> {
/**
* 将String类型转成Date类型
* @param str
* @return
*/
public Date convert(String str) {
try {
//定义一个时间转换工具对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//将字符串转Date并返回
return sdf.parse(str);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
(2)注册自定义类型转换器
修改springmvc.xml,在springmvc.xml中注册类型转换器,代码如下:
<!-- 配置spring开启注解mvc的支持-->
<mvc:annotation-driven conversion-service="conversionService" />
<!--
注册自定义类型转换器
-->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<bean class="com.sen.util.DateConverter" />
</property>
</bean>
以上为一种方式,比较灵活,但是同样的比较繁琐
还有一种是注解的方式:
//添加Date类型的生日,不能接收前端传入的字符串,要自己做类型转换
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
在Beanjava类中的属性中标注格式即可
|