我以这种方式从表单中发送一些参数:
myparam[0] : 'myValue1'
myparam[1] : 'myValue2'
myparam[2] : 'myValue3'
otherParam : 'otherValue'
anotherParam : 'anotherValue'
...
我知道我可以通过添加像这样的参数来获得控制器方法中的所有参数
public String controllerMethod(@RequestParam Map<String, String> params){
....
}
我想将参数myParamnot the other ones绑定到一个列表或数组(任何保持索引顺序的东西),所以我尝试使用如下语法:
public String controllerMethod(@RequestParam(value="myParam") List<String> myParams){
....
}
和
public String controllerMethod(@RequestParam(value="myParam") String[] myParams){
....
}
但它们都没有绑定myParams。即使我给map添加了一个值,它也不能绑定参数:
public String controllerMethod(@RequestParam(value="myParam") Map<String, String> params){
....
}
有没有什么语法可以将一些参数绑定到列表或数组,而不必创建一个带有列表属性的@ModelAttribute对象?
谢谢
发布于 2011-01-05 01:19:35
@RequestParam
中的数组用于绑定多个同名的参数:
myparam=myValue1&myparam=myValue2&myparam=myValue3
如果你需要绑定@ModelAttribute
-style索引参数,我想你还是需要@ModelAttribute
。
发布于 2011-04-11 23:54:39
或者你可以这样做:
public String controllerMethod(@RequestParam(value="myParam[]") String[] myParams){
....
}
例如,它适用于像这样的表单:
<input type="checkbox" name="myParam[]" value="myVal1" />
<input type="checkbox" name="myParam[]" value="myVal2" />
这是最简单的解决方案:)
发布于 2017-02-13 18:45:15
订阅basil在对问题本身的评论中所说的,如果method = RequestMethod.GET
,你可以使用@RequestParam List<String> groupVal
。
然后,使用params列表调用服务就像这样简单:
API_URL?groupVal=kkk,ccc,mmm
https://stackoverflow.com/questions/4596351
复制相似问题