Может ли Spring MVC обрабатывать многозначный параметр запроса? - PullRequest
39 голосов
/ 19 марта 2012

Имея этот запрос http://myserver/find-by-phones?phone=123&phone=345, можно ли обработать что-то вроде этого:

@Controller
public class Controller{
    @RequestMapping("/find-by-phones")
    public String find(List<String> phones){
       ...
    }
}

Может ли Spring MVC каким-либо образом преобразовать многозначный параметр phones в список String s (или других объектов?

Спасибо.

Alex

Ответы [ 2 ]

69 голосов
/ 19 марта 2012

"Массивы" в @RequestParam используются для привязки нескольких параметров с одинаковым именем:

phone=val1&phone=val2&phone=val3

-

public String method(@RequestParam(value="phone") String[] phoneArray){
    ....
}

Затем вы можете преобразовать его в список, используя Arrays.asList(..) method

EDIT1:

Как рекомендует emdadul, последняя версия пружины также может работать следующим образом:

public String method(@RequestParam(value="phone", required=false) List<String> phones){
    ....
}
6 голосов
/ 16 декабря 2017

Spring может преобразовать параметр запроса непосредственно в List или даже Set

, например:

 @RequestParam(value = "phone", required = false) List<String> phones

или

 @RequestParam(value = "phone", required = false) Set<String> phones
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...