学透Spring:从入门到项目实战(图灵出品)京东自营
优惠价:¥89.9
由@InitBinder注解修饰的方法用于初始化WebDataBinder对象,能够实现:从request获取到handler方法中由@RequestParam注解或@PathVariable注解修饰的参数后,假如获取到的参数类型与handler方法上的参数类型不匹配,此时可以使用初始化好的WebDataBinder对获取到的参数进行类型处理。
一个经典的例子就是handler方法上的参数类型为Date,而从request中获取到的参数类型是字符串,SpringMVC在默认情况下无法实现字符串转Date,此时可以在由@InitBinder注解修饰的方法中为WebDataBinder对象注册CustomDateEditor,从而使得WebDataBinder能将从request中获取到的字符串再转换为Date对象。
通常,如果在@ControllerAdvice注解修饰的类中使用@InitBinder注解,此时@InitBinder注解修饰的方法所做的事情全局生效(前提是@ControllerAdvice注解没有设置basePackages字段);如果在@Controller注解修饰的类中使用@InitBinder注解,此时@InitBinder注解修饰的方法所做的事情仅对当前Controller生效。本篇文章将结合简单例子,对@InitBinder注解的使用,原理进行学习。
SpringBoot版本:2.4.1
一. @InitBinder注解使用说明
以前言中提到的字符串转Date为例,对@InitBinder的使用进行说明。