Spring mvc SpringMVC能处理多值查询参数吗?

Spring mvc SpringMVC能处理多值查询参数吗?,spring-mvc,Spring Mvc,拥有这个http://myserver/find-by-phones?phone=123&phone=345request,是否可以处理以下内容: @Controller public class Controller{ @RequestMapping("/find-by-phones") public String find(List<String> phones){ ... } } @控制器 公共类控制器{ @请求映射(“/find by

拥有这个
http://myserver/find-by-phones?phone=123&phone=345
request,是否可以处理以下内容:

@Controller
public class Controller{
    @RequestMapping("/find-by-phones")
    public String find(List<String> phones){
       ...
    }
}
@控制器
公共类控制器{
@请求映射(“/find by phones”)
公共字符串查找(列出电话){
...
}
}
Spring MVC能否将多值参数
phones
转换为
String
s(或其他对象)列表

谢谢

Alex

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

phone=val1&phone=val2&phone=val3
-

然后可以使用
Arrays.asList(..)
方法将其转换为列表

编辑1:

正如emdadul所建议的,最新版本的spring也可以执行以下操作:

public String method(@RequestParam(value="phone", required=false) List<String> phones){
    ....
}
公共字符串方法(@RequestParam(value=“phone”,required=false)列出电话){
....
}

Spring可以将查询参数直接转换为
列表
甚至是
集合

例如:

 @RequestParam(value = "phone", required = false) List<String> phones
@RequestParam(value=“phone”,required=false)列出电话

@RequestParam(value=“phone”,required=false)设置电话

我对索引查询字符串有一个问题,比如
http://myserver/find-by-phones?phone[0]=123&phone[1]=345
而且只处理
MultiValueMap<String, String>

但是正在明确地寻找
phones[]
忽略索引。这就是我决定让它处理的原因。

如果没有一个参数,phoneArray是空数组还是空数组?Spring可以直接将值放入列表中:
@RequestParam(value=“phone”)列出电话
。不确定是否/何时更改,但它在Spring 3.0.5中工作。@Nailgun能否设置某种适当的默认参数并生成空数组,或者只需处理空数组?谢谢,表单元素名称是phone[]还是phone或phone[0],phone[1]…我有25个mcq问题,每个问题有4个单选按钮。元素名称将是phone
find(@RequestParam(required=false,value=“phone”)列出电话)
应该有效。这适用于
url?phone=123&phone=345
,也适用于
url?phone=123345
null
参数值,如
url
url?phone=
我希望这能帮助寻找此解决方案的任何人:)如果有多个参数,所有参数都可以有多个值,使用多值映射。看见
http://myserver/find-by-phones?phone[0]=123&phone[1]=345
MultiValueMap<String, String>
@RequestParam("phones[]")