public String someMethod(@RequestParam MultiValueMap<String,String> params) {
final Iterator<Entry<String, List<String>>> it = params.entrySet().iterator();
while(it.hasNext()) {
final String k = it.next().getKey();
final List<String> values = it.next().getValue();
}
return "dummy_response";
}
9条答案
按热度按时间s8vozzvw1#
你可以用上面提到的方式使用RequestParam。
knsnq2tg2#
看来你得不到
因为所有的参数都有相同的名字“myparam”
试试这个:
nnsrf1az3#
要一次获取所有参数,请尝试以下操作:
@RequestParam
java文档(3.段落):注解,该注解指示方法参数应绑定到Web请求参数。支持Servlet和Portlet环境中带注解的处理程序方法。
如果方法参数类型为Map并且指定了请求参数名称,则假定适当的转换策略可用,则将请求参数值转换为Map。
如果方法参数为
Map<String, String>
或MultiValueMap<String, String>
,且未指定参数名,则map参数将填充所有请求参数名和值。dhxwm5r44#
从Spring 3.0开始,您还可以使用MultiValueMap来实现这一点:
一个基本的例子是:
zaqlnxep5#
如果有人试图在Sping Boot 中做同样的事情,请使用
RequestBody
代替RequestParam
j8yoct9x6#
Spring mvc可以支持
List<Object>
、Set<Object>
和Map<Object>
param,但不支持@RequestParam。以
List<Object>
为例,如果你的对象是User.java
,它是这样的:如果你想传递一个
List<User>
的参数,你可以像这样使用url记住对url进行编码,编码后的url是这样的:
List<Object>
、Set<Object>
和Map<Object>
的示例显示在my github中。vshtjzan7#
您可以使用多个参数
8tntrjer8#
对于同名的参数,可以使用MultiValueMap<String,String>。然后所有的值都将以List的形式显示
nwo49xxi9#
您可以使用多个@RequestParam注解,如下所示。