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个单选按钮。元素名称将是phonefind(@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[]")