Converter转换器
spring的Converter是可以将一种类型转换成另一种类型的一个对象, 自定义Converter需要实现Converter接口
日期转换器
importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importorg.springframework.core.convert.converter.Converter;/*** 字符串日期格式转换器**/
public class CustomGlobalStrToDataConverter implements Converter{private String datePattern;//日期格式//创建对象,并传入构造参数
publicCustomGlobalStrToDataConverter(String datePattern){this.datePattern =datePattern;
}
@OverridepublicDate convert(String source) {try{
Date date= newSimpleDateFormat(datePattern).parse(source);returndate;
}catch(ParseException e) {
e.printStackTrace();
}return null;
}
}
使用SpringMVC自定义的Converter, 需要在SpringMVC的配置文件中加入如下配置
Formatter
Formatter和Converter一样, 是将一种类型转换成另一种类型, 但是, Formatter的源类型必须是一个String, 目标类型是java类型.
importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Locale;importorg.springframework.format.Formatter;public class DateFormatter implements Formatter{private String datePattern;//日期格式字符串
private SimpleDateFormat dateFormat;//日期格式类
publicDateFormatter(String datePattern) {this.datePattern =datePattern;
dateFormat= newSimpleDateFormat(datePattern);
}//将Date格式化为指定日期字符串,返回目标对象的字符串表示法
@OverridepublicString print(Date date, Locale locale) {returndateFormat.format(date);
}//将字符串日期解析成Date对象
@Overridepublic Date parse(String source, Locale locale) throwsParseException {returndateFormat.parse(source);
}
}
springMVC配置文件
选择Converter, 还是Formatter
Converter是一般工具, 可以将一种类型转换成另一种类型, 例如, 将String转换成Date, 或者Long转换成Date, Conveter既可以用在web层, 也可以用在其他层中, Formatter只能讲String转换层另一种java类型, 例如, 将String转换成Date, 但它不可能将Long转换成Date类型, 因此Formatter适用于web层, 因此, SpringMVC应用程序中, 选择Formatter比选择Converter更合适.