Je fais un simple "get" dans JBoss/Spring. Je veux que le client me passe un tableau d'entiers dans l'url. Comment configurer cela sur le serveur? Et montrer que le client doit envoyer le message?
C'est ce que j'ai en ce moment.
@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds)
{
//What do I do??
return "Dummy";
}
Sur le client, je voudrais passer quelque chose comme
http: // localhost: 8080/public/test/[1,3,4,50]
Quand je l'ai fait, j'obtiens une erreur:
Java.lang.IllegalStateException: impossible de trouver @PathVariable [firstNameIds] dans @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";
}
(testé avec Spring MVC 4.0.1)
Vous devriez faire quelque chose comme ça:
Appel:
GET http://localhost:8080/public/test/1,2,3,4
Votre contrôleur:
@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";
}
si vous souhaitez utiliser des crochets - []
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";
}
(Testé avec Spring MVC 4.1.1)
Pourrait faire les identifiants @PathVariable String, puis analyser la chaîne.
Donc quelque chose comme:
@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable String firstNameIds)
{
String[] ids = firstNameIds.split(",");
return "Dummy";
}
Vous passeriez:
http://localhost:8080/public/test/1,3,4,50