手工数据类型转换(转换器)
- 编写自定义转换器,自定义转换的规则,实现日期格式的转换
- 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>
<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 {
}