Spring MVC接收Date参数全局通用配置

该博客介绍了如何在Spring MVC中进行Date参数的全局通用配置,通过引入commons-lang3工具类,避免在每个Date类型参数上添加@DateTimeFormat注解,提高代码的兼容性和可维护性。

先上代码:

import java.util.Date;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;

@Configuration
public class WebConfig {
	@Bean
	public Converter<String, Date> dateConverter() {
		// 转成lamda表达式有问题,可能jdk的bug
		return new Converter<String, Date>() {
			@Override
			public Date convert(String source) {
				if (StringUtils.isBlank(source)) return null; // 这行也可不要
				try {
					// 将项目中所有可能出现的日期格式按出现频率降序排列
					return DateUtils.parseDate(source, "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd",
							"yyyy-MM", "yyyy/MM/dd", "yyyyMMddHHmmss", "yyyyMMdd");
				} catch (Exception e) {
					throw new RuntimeException(e);
				}
			}
		};
	}
}

注:需要引入commons-lang3工具类

好处:不需要在每个Date类型的参数前加上@DateTimeFormat注解并标上格式了,有更好的兼容性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值