同属性名的多对象中,在本controller中添加一个声明方法,并以@InitABinder注解来声明,进入当前Controller会先经过@InitBinder注解的方法进行初始化,再跳转到指定方法。@InitBinder注解的value属性必须和控制器匹配方法参数名一致
例如:
//todo http://localhost:8080/object.do?name=Tom&age=10
//TODO http://localhost:8080/object.do?name=Tom&age=10&contactInfo.phone=10086
//TODO http://localhost:8080/object.do?user.name=Tom&admin.name=Lucy&age=10
@RequestMapping(value = "object.do")
@ResponseBody
public String object(User user,Admin admin){
return user.toString()+" "+admin.toString();
}
@InitBinder("user")
public void initUser(WebDataBinder binder){
binder.setFieldDefaultPrefix("user.");
}
@InitBinder("admin")
public void initAdmin(WebDataBinder binder){
binder.setFieldDefaultPrefix("admin.");
}