类型转换

默认情况下,会安装各种数字和日期类型的格式化程序,并支持通过字段和参数上的@NumberFormat@DurationFormat@DateTimeFormat进行自定义。

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

@Configuration
public class WebConfiguration implements WebMvcConfigurer {

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

默认情况下,Spring MVC在解析和格式化日期值时会考虑请求区域设置。这适用于日期以字符串形式用“input”表单字段表示的表单。但是,对于“date”和“time”表单字段,浏览器使用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