类型转换
默认情况下,框架配置了各种数字和日期类型的格式化器,并支持通过字段上的 @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
SPI
和 FormattingConversionServiceFactoryBean
。