Spring Mvc时间格式参数的项目全局的格式化(LocalDate/LocalDateTime类型)


上一篇文我们讲到 Spring Mvc时间格式参数,前后时间传参,单个字段的时间格式化问题
那我们要做项目肯定会遇到好多的时间参数问题,要是每个字段都去加参数岂不麻烦,今天我们讲讲全局时间参数格式化问题(LocalDate/LocalDateTime类型)

一、建包,建类

1. 在你的controller同级别目录里创建一个文件夹,再创建一个子文件(我这里父级文件叫common,子文件我创了个叫controller的,此controller 非彼controller,文件夹而已),用于存放入参格式化
创建类(我这里叫InitBinderAdviseController
2. 在你的controller同级别目录里创建一个文件夹,再创建一个子文件(我这里父级文件叫config),用于存放出参格式化
创建类(我这里叫WebMvcConfig
如何反驳这样建包
答就是为了
整齐好看
,因为我这个东西用到了太多别的需要分类,
在这里插入图片描述

二、在建的类里面加入“项目全局的入参格式化”

@ControllerAdvice 是spring 3.2提供的新注解,它是一个controller增强器,可以对controller中使用到@RequestMapping注解的方法做逻辑处理

@InitBinder用于在控制器(Controller)中标注于方法上,表示为当前控制器注册一个属性编辑器,只对当前的Controller有效。@InitBinder标注的方法必须有一个参数WebDataBinder。webDataBinder是用于表单到方法的数据绑定的。所谓的属性编辑器可以理解就是帮助我们完成参数绑定。

@ControllerAdvice
public class InitBinderAdviseController {
/**
* 将前台传递过来的日期格式的字符串,自动转化为时间类型
*/
@InitBinder
public void initBinder(WebDataBinder binder)
{
 // LocalDateTime 类型转换
 binder.registerCustomEditor(LocalDateTime.class, new PropertyEditorSupport()
 {
   @Override
   public void setAsText(String text)
   {
     if(!StringUtils.isEmpty(text)){
         setValue(LocalDateTime.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
     }
   }
 });
}
}

三、设置项目全局的出参格式化

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
  private static final String dateTimeFormat = "yyyy-MM-dd HH:mm:ss";
  private static final String dateFormat = "yyyy-MM-dd";
/**
*@Bean注解  注入到spring中,有spring管理
* @Bean  <bean id="xxx"></bean>
* @return
*/
 @Bean
 public Jackson2ObjectMapperBuilderCustomizer jsonCustomizer() {
   return builder -> {
     builder.simpleDateFormat(dateTimeFormat);
     builder.serializers(new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(dateTimeFormat)));
     builder.serializers(new LocalDateSerializer(DateTimeFormatter.ofPattern(dateFormat)));
    };
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值