首页 > 解决方案 > 使用@RequestParam在spring mvc中请求数组类型参数时如何始终采用第一个参数

问题描述

我写了这段代码。

@GetMapping("/test")
public Response search(@RequestParam String value) {
    System.out.println(value);
    return new Response(value)
}

一些身体要求,如

/test?value=a&value=b&value=c

值绑定a,b,c 我想总是绑定第一个参数。采取a,忽略bc

有没有办法使用@RequestParam?还是必须使用HttpServletRequest和解析参数?

标签: arraysspringmodel-view-controllerparametersrequest

解决方案


在这种情况下,您可以使用@RequestParam List<String> value而不是@RequestParam String value,并获取第一个值value.get(0)忽略其余的值

例如

http://rentacar.com/api/v1/search?make=audi&model=A8&type=6&type=11&type=12&color=RED&color=GREY

方法

public List<Vehicle> search(
@RequestParam(value="make", required=false) String make, 
@RequestParam(value="model", required=false) String model, 
@RequestParam(value="type", required=false) List<String> types, 
@RequestParam(value="color", required=false) List<String> colors)
  {
    ....
  }

推荐阅读