转自:
Spring MVC框架中Formatter数据格式化的相关说明
在Spring MVC框架中 Formatter<T>和 Converter<S,T>具有相同的功能,其目的都是将数据类型从一种转换为另一种,那么它们之间到底有哪些不同之处呢?
Formatter<T> 的源数据类型必须是 String 类型
Converter<S,T> 的源数据类型是任意数据类型
在Web开发中,可以毫不夸张的说接收所有数据都是String类型,因此Formatter<T>是我们常用的数据转换操作
内置的格式化转换器
Spring MVC中提供以下几种常见的内置转换器,如下:
- NumberFormatter:可进行 Number 与 String 之间的解析与格式化
- CurrencyFormatter:可进行Number 与 String 之间的解析与格式化(带货币符号)
- PercentFormatter:可进行Number 与 String 之间的解析与格式化(带百分数符号)
- DateFormatter:可进行Date 与 String 之间的解析与格式化
自定义格式化转换器
我们可通过基于org.springframework.format.Formatter 接口编写一个类,实现自定义格式转换器
接口声明如下所示:
public interface Formatter<T>
T:将字符串转换后的目标数据类型
此接口拥有parse 和 print 两个接口方法,我们可通过编写相应的方法实现其功能
public T parse(String s,java.util.Locale locale)
public String print(T object,java.util.Locale locale)
parse 方法的功能是利用指定的 Locale 将一个 String 类型转换成目标类型,print 方法与之相反,用于返回目标对象的字符串表示。