我们知道,SpringMVC会自动将传递来的参数绑定到我们的controller方法的参数上,但是呢只能对基本数据类型进行绑定,如果是复杂类型比如Date
的话,就显得力不从心了。这个时候,我们可以使用WebDataBinder
的registerCustomEditor
来注册自定义编辑器,也就是说将那些复杂类型交给我们自定义的编辑器来处理,不需要SpringMVC来做了,具体如下:
实体类User
public class User {
private String name;
private Integer age;
private Date birth;
注册自定义编辑器
@InitBinder
public void initBinder(WebDataBinder binder){
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFormat.setLenient(true);//自动计算日期
binder.registerCustomEditor(Date.class,new CustomDateEditor(dateFormat,true));
}
Controller控制器
@GetMapping("/hello4")
public String hello4(User user){
System.out.println(user.getBirth());
return "hello";
}
测试
启动项目
观察控制台输出