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

手工日期类型转换的三种方法--默然说话20170610备课记录

2017-04-10 15:20 204 查看

手工数据类型转换(转换器)

编写自定义转换器,自定义转换的规则,实现日期格式的转换

Converter转换接口

将一种类型转换成另一种类型的对象

convert()

自定义转换器(StringToDateConverter.java)

实现convert()方法:完成字符串到java.util.Date的转换

装配自定义的ConversionService

StringToDateConverter.java源代码

public class StringToDateConverter implements Converter<String, Date> {
private String datePattern;

public StringToDateConverter(String datePattern) {
this.datePattern=datePattern;
}

@Override
public Date convert(String dateString) {
Date date=null;

try {
date=new SimpleDateFormat("yyyy年MM月dd日").parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}

}


配置文件源代码

<!-- 把字符串转为日期类型的转换器 -->
<bean id="stringToDateConverter" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="tools.StringToDateConverter" >
<constructor-arg type="java.lang.String" value="yyyy年MM月dd日"></constructor-arg>
</bean>
</list>
</property>
</bean>

<!-- 添加了conversion-service属性之后,不再需要写@DateTimeFormat注解 -->
<mvc:annotation-driven conversion-service="stringToDateConverter">
</mvc:annotation-driven>


自定义编辑器实现日期格式的转换

使用@InitBinder装配自定义编辑器

BaseController.java,标注@InitBinder

注意:标注了@InitBinder注解的方法会在控制器初始化时调用。

修改UserController.java,继承BaseController

BaseController.java源代码

public class BaseController {
@InitBinder//使用注解
public void initBinder(WebDataBinder dataBinder){
dataBinder.registerCustomEditor(Date.class,
new CustomDateEditor(new SimpleDateFormat("yyyy年MM月dd日"), true));
}
}


UserController.java源代码

//继承就好了,不需要再做配置了
//不过个人不太推荐这样用
public class UsersController extends BaseController {
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息