一尘不染

绑定@RequestParam中的列表

java

我以这种方式从表单发送一些参数:

myparam[0]     : 'myValue1'
myparam[1]     : 'myValue2'
myparam[2]     : 'myValue3'
otherParam     : 'otherValue'
anotherParam   : 'anotherValue' 
...

我知道我可以通过添加像这样的参数来获取控制器方法中的所有参数

public String controllerMethod(@RequestParam Map<String, String> params){
    ....
}

我想将参数myParam [](而不是其他参数)绑定到列表或数组(任何保持索引顺序的东西),因此我尝试使用以下语法:

public String controllerMethod(@RequestParam(value="myParam") List<String> myParams){
    ....
}

public String controllerMethod(@RequestParam(value="myParam") String[] myParams){
    ....
}

但是它们都没有绑定myParam。即使将值添加到地图,它也无法绑定参数:

public String controllerMethod(@RequestParam(value="myParam") Map<String, String> params){
    ....
}

是否有任何语法可以将某些参数绑定到列表或数组,而不必将对象创建为带有列表属性的@ModelAttribute?

谢谢


阅读 328

收藏
2020-09-08

共1个答案

一尘不染

中的数组@RequestParam用于绑定多个相同名称的参数:

myparam=myValue1&myparam=myValue2&myparam=myValue3

如果您需要绑定@ModelAttribute样式索引的参数,我想您@ModelAttribute还是需要。

2020-09-08