在controller的处理函数,有可能会遇到,请求的参数由相同的成员的情况:
@RequestMapping(value = "path",method = RequestMethod.POST)
public Map<String,Object> addPasswordInformation(A a,B b){
// do something here
}
其中A
和 B
都有相同的成员c
的话,无法自动的把相应的值绑定到中。
使用InitBinder
注解
@InitBinder("a")
public void initUserBinder(WebDataBinder webDataBinder){
webDataBinder.setFieldDefaultPrefix("classA.");
}
@InitBinder("b")
public void initUserBinder(WebDataBinder webDataBinder){
webDataBinder.setFieldDefaultPrefix("classB.");
}
@RequestMapping(value = "path",method = RequestMethod.POST)
public Map<String,Object> addPasswordInformation(@ModelAttribute("a") A a,
@ModelAttribute("b") B b){
// do something here
}
@ModelAttribute("..")
注解的参数要和binder方法的@InitBinder("..")
注解相同。
data = {
'classA.c':'asdasdasd',
,
'classB.c':'asdasdasd',
}
以上是python代码,不过都是一样的,把键改成带前缀的。