Вопрос

Я делаю простую «Get» в JBoss / Spring.Я хочу, чтобы клиент передал мне массив целых чисел в URL.Как мне установить это на сервере?И показать, если клиент отправит сообщение?

Это то, что у меня сейчас.

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds)
{
     //What do I do??
     return "Dummy"; 
}
.

на клиенте я хотел бы пройти что-то вроде

http://localhost:8080/public/test/[1,3,4,50]
.

Когда я сделал это, я получаю ошибку:

java.lang.LegalstateException: не удалось найти @ pathvariable [firstnameids] в @requestmapping

Это было полезно?

Решение

GET http://localhost:8080/public/test/1,2,3,4

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable String[] firstNameIds)
{
    // firstNameIds: [1,2,3,4]
    return "Dummy"; 
}
.

(проверено с пружинной MVC 4.0.1)

Другие советы

Вы должны сделать что-то подобное:

<Сильный> Вызов:

GET http://localhost:8080/public/test/1,2,3,4

<Сильный> Ваш контроллер:

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds) {
     //Example: pring your params
     for(Integer param : firstNameIds) {
        System.out.println("id: " + param);
     }
     return "Dummy";
}
.

Если вы хотите использовать квадратные скобки - []

DELETE http://localhost:8080/public/test/[1,2,3,4]

@RequestMapping(value="/test/[{firstNameIds}]", method=RequestMethod.DELETE)
@ResponseBody
public String test(@PathVariable String[] firstNameIds)
{
    // firstNameIds: [1,2,3,4]
    return "Dummy"; 
}
.

(проверено с пружинной MVC 4.1.1)

может делать @PAPTVARIADE id id, затем анализировать строку.

Так что-то вроде:

@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable String firstNameIds)
{
     String[] ids = firstNameIds.split(",");
     return "Dummy"; 
}
.

Вы пройдете:

http://localhost:8080/public/test/1,3,4,50
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top