前言:本篇主要介绍SpringMVC的数据绑定流程中数据格式化的相关概念与用法。
本篇文章重点关注以下问题:
- SpringMVC的数据格式化架构
-
Spring内建的格式化转换器
- 自定义格式转换器
1. SpringMVC的数据格式化架构
1.1 格式化转换器
提供格式化转换的实现支持,对属性对象的输入/输出进行格式化,从其本质上讲依然属于 “类型转换” 的范畴。
一共有如下两组四个接口:
1. Printer接口
格式化显示接口,将T 类型的对象根据Locale信息以某种格式进行打印显示(即返回字符串形式);
@FunctionalInterface
public interface Printer<T> {
String print(T object, Locale locale);
}
2. Parser接口
解析接口,根据Locale信息解析字符串到T类型的对象,解析失败可以抛出java.text.ParseException或IllegalArgumentException异常即可。
@FunctionalInterface
public interface Parser<T> {
T parse(String text, Locale locale) throws ParseException;
}
3、Formatter接口
格式化SPI接口,继承Printer 和Parser 接口,完成T类型对象的格式化和解析功能;
public interface Formatter<T> extends Printer<T>, Parser<T> {
}
4、AnnotationFormatterFactory接口
注解驱动的字段格式化工厂,用于创建带注解的对象字段的Printer 和Parser,即用于格式化和解析带注解的对象字段。
public interface AnnotationFormatterFactory<A extends Annotation> { // 可以识别的注解类型
Set<Class<?>> ge