// 未分类
请求参数相同的情况
发布 2018-09-30 · 永久链接
no excerpt about this article
在controller的处理函数,有可能会遇到,请求的参数由相同的成员的情况:
``` java
@RequestMapping(value = "path",method = RequestMethod.POST)
public Map addPasswordInformation(A a,B b){
// do something here
}
```
其中`A` 和 `B` 都有相同的成员`c`的话,无法自动的把相应的值绑定到中。
## 解决方法
使用`InitBinder`注解
### 定义binder方法
``` java
@InitBinder("a")
public void initUserBinder(WebDataBinder webDataBinder){
webDataBinder.setFieldDefaultPrefix("classA.");
}
@InitBinder("b")
public void initUserBinder(WebDataBinder webDataBinder){
webDataBinder.setFieldDefaultPrefix("classB.");
}
```
### 在controller方法的参数添加注解
``` java
@RequestMapping(value = "path",method = RequestMethod.POST)
public Map addPasswordInformation(@ModelAttribute("a") A a,
@ModelAttribute("b") B b){
// do something here
}
```
`@ModelAttribute("..")` 注解的参数要和binder方法的`@InitBinder("..")`注解相同。
### 修改请求的数据
``` python
data = {
'classA.c':'asdasdasd',
,
'classB.c':'asdasdasd',
}
```
以上是python代码,不过都是一样的,把**键**改成带前缀的。