字段格式化

Spring 3 引入了一个方便的SPI,它为客户端环境的实现Formatter提供了一个简单而健壮的替代方

Formatter

Formatter实现字段格式化逻辑的SPI 。

package org.springframework.format.datetime;

public final class DateFormatter implements Formatter<Date> {

    private String pattern;

    public DateFormatter(String pattern) {
this.pattern = pattern;
} public String print(Date date, Locale locale) {
if (date == null) {
return "";
}
return getDateFormat(locale).format(date);
} public Date parse(String formatted, Locale locale) throws ParseException {
if (formatted.length() == 0) {
return null;
}
return getDateFormat(locale).parse(formatted);
} protected DateFormat getDateFormat(Locale locale) {
DateFormat dateFormat = new SimpleDateFormat(this.pattern, locale);
dateFormat.setLenient(false);
return dateFormat;
}
}

注释驱动的格式

字段格式可以通过字段类型或注释进行配置。

要触发格式化,您可以使用@NumberFormat 注释字段,如以下示例所示:

public class MyModel {

    @NumberFormat(style=Style.CURRENCY)
private BigDecimal decimal;
}

以下示例用于@DateTimeFormat将 格式化java.util.Date为 ISO 日期 (yyyy-MM-dd):

public class MyModel {

    @DateTimeFormat(iso=ISO.DATE)
private Date date;
}

FormatterRegistry

FormatterRegistry是一个用于注册格式化程序和转换器的 SPI。

FormatterRegistrar

FormatterRegistrar是一个 SPI,用于通过 FormatterRegistry 注册格式化程序和转换器。下面的清单显示了它的接口定义:

package org.springframework.format;

public interface FormatterRegistrar {

    void registerFormatters(FormatterRegistry registry);
}

FormatterRegistrar在为给定的格式类别(例如日期格式)注册多个相关转换器和格式器时很有用。在声明式注册不足的情况下,它也很有用——例如,当格式化程序需要在与其自身不同的特定字段类型下进行索引时,``或者在注册Printer/Parser对时。下一节提供有关转换器和格式化程序注册的更多信息。

在 Spring MVC 中配置格式化

请参阅Spring MVC 章节中的转换和格式化

最新文章

  1. App开发(Android与php接口)之:短信验证码
  2. 从github拉取项目到myeclipse本地
  3. 基本的 HTML 标签 - 四个实例
  4. jQuery Attributes vs. Properties
  5. I2C Verilog的实现(二)
  6. UTF-8 BOM编码格式文件对SSI的影响
  7. 神奇的矩阵 NOI模拟题
  8. Ubuntu 下使用 ZTE ME3630 4G 模块
  9. 好久没有写BLOG了,人老了就开始变懒了【非技术】
  10. python将多个pdf合成一个
  11. Java线程基础(一)
  12. json,json对象以及js对象字面量的区别
  13. 手工脱壳之AsPack压缩脱壳-随机基址
  14. openmp
  15. [py]一致性hash原理
  16. 1.C和C++的区别
  17. 《软件测试自动化之道》读书笔记 之 底层的Web UI 测试
  18. Strom学习笔记2:Storm Maven Project-StromStack工程
  19. C#的几种写文件方法
  20. dp之混合背包poj1742(推荐)

热门文章

  1. JAVA常用类(一)Syatem类
  2. 查看process状态
  3. 如何让公司内网ip映射到公网?
  4. x264码率控制
  5. stata基础(十五)——线性回归的基本假定、估计回归系数、拟合系数
  6. vscode vue代码模板
  7. pip修改镜像源
  8. 【Windows】IP 地址变为 169.254.x.x 的解决方法
  9. Java script Date和长整型互换
  10. 后台运行python服务 起停脚本