类型转换

默认情况下,框架配置了各种数字和日期类型的格式化器,并支持通过字段上的 @NumberFormat@DateTimeFormat 进行自定义。

要注册自定义格式化器和转换器,请使用以下方法:

@Configuration
public class WebConfiguration implements WebMvcConfigurer {

  @Override
  public void addFormatters(FormatterRegistry registry) {
    // ...
  }
}

默认情况下,Web MVC 在解析和格式化日期值时会考虑请求的 Locale。这对于日期以字符串形式表示的“输入”表单字段是有效的。 然而,对于“日期”和“时间”表单字段,浏览器使用 HTML 规范中定义的固定格式。对于这些情况,日期和时间格式化可以按照以下方式自定义:

@Configuration
public class DateTimeWebConfiguration implements WebMvcConfigurer {

  @Override
  public void addFormatters(FormatterRegistry registry) {
    DateTimeFormatterRegistrar registrar = new DateTimeFormatterRegistrar();
    registrar.setUseIsoFormat(true);
    registrar.registerFormatters(registry);
  }
}

注意:有关何时使用 FormatterRegistrar 实现的更多信息,请参见 FormatterRegistrar SPIFormattingConversionServiceFactoryBean