-
基于 Java 配置的方式
- 实现 WebMvcConfigurer 接口:在 Spring MVC 的配置类中实现
WebMvcConfigurer
接口。这个接口提供了许多用于自定义 Spring MVC 配置的方法,包括自定义格式化器和转换器。
@Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addFormatters(FormatterRegistry registry) { // 在这里添加日期格式化器 } }
- 创建并添加日期格式化器:在
addFormatters
方法中,可以创建日期格式化器并添加到FormatterRegistry
中。例如,使用org.springframework.format.datetime.DateFormatter
来创建一个简单的日期格式化器。
@Override public void addFormatters(FormatterRegistry registry) { DateFormatter dateFormatter = new DateFormatter("yyyy - MM - dd"); registry.addFormatter(dateFormatter); }
这里创建了一个日期格式化器,它期望的日期格式是 “yyyy - MM - dd”。当 Spring MVC 进行数据绑定,遇到日期类型的参数时,就会尝试使用这个格式化器将请求中的日期字符串转换为
java.util.Date
类型。- 使用 DateTimeFormatter(针对 Java 8 日期时间类型):如果要处理
java.time
包中的日期时间类型(如LocalDate
、LocalDateTime
等),可以使用DateTimeFormatter
。
@Override public void addFormatters(FormatterRegistry registry) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy - MM - dd HH:mm:ss"); registry.addFormatter(new DateTimeFormatterRegistrar() { @Override public void registerFormatters(FormatterRegistry registry) { registry.addFormatter(new Formatter<LocalDateTime>() { @Override public LocalDateTime parse(String text, Locale locale) { return LocalDateTime.parse(text, formatter); } @Override public String print(LocalDateTime object, Locale locale) { return formatter.format(object); } }); } }); }
上述代码创建了一个用于
LocalDateTime
类型的格式化器,格式为 “yyyy - MM - dd HH:mm:ss”。当绑定LocalDateTime
类型的参数时,会按照这个格式进行解析和格式化。 - 实现 WebMvcConfigurer 接口:在 Spring MVC 的配置类中实现
-
基于 XML 配置的方式(较旧的方式,不推荐但可能在旧项目中会遇到)
- 配置 ConversionService:在 Spring 的 XML 配置文件中,可以定义一个
ConversionService
,它用于管理各种类型的转换,包括日期格式的转换。
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="formatters"> <set> <bean class="org.springframework.format.datetime.DateFormatter"> <constructor-arg value="yyyy - MM - dd"/> </bean> </set> </property> </bean>
这里定义了一个
ConversionService
,并在其中添加了一个日期格式化器,格式为 “yyyy - MM - dd”。- 启用 ConversionService:将定义好的
ConversionService
应用到 Spring MVC 的配置中。通常可以通过mvc:annotation - driven
标签来启用。
<mvc:annotation-driven conversion-service="conversionService"/>
这样,在 Spring MVC 的数据绑定过程中,就会使用配置好的日期格式化器进行日期类型的转换。
- 配置 ConversionService:在 Spring 的 XML 配置文件中,可以定义一个