java - postmapping - requestmapping post
Pasar una matriz o lista a @Pathvariable-Spring/Java (4)
Estoy haciendo un simple ''get'' en JBoss / Spring. Quiero que el cliente me pase una matriz de enteros en la url. ¿Cómo configuro eso en el servidor? ¿Y mostrar si el cliente envía el mensaje?
Esto es lo que tengo ahora.
@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable List<Integer> firstNameIds)
{
//What do I do??
return "Dummy";
}
En el cliente me gustaría pasar algo así como
http://localhost:8080/public/test/[1,3,4,50]
Cuando lo hice, recibí un error:
java.lang.IllegalStateException: no se pudo encontrar @PathVariable [firstNameIds] en @RequestMapping
Deberías hacer algo como esto:
Llamada:
GET http://localhost:8080/public/test/1,2,3,4
Su controlador:
@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";
}
Podrían hacer ids @PathVariable String, luego analizar la cadena.
Entonces algo así como:
@RequestMapping(value="/test/{firstNameIds}", method=RequestMethod.GET)
@ResponseBody
public String test(@PathVariable String firstNameIds)
{
String[] ids = firstNameIds.split(",");
return "Dummy";
}
Usted pasaría:
http://localhost:8080/public/test/1,3,4,50
si quieres usar corchetes - []
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";
}
(Probado con Spring MVC 4.1.1)
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";
}
(probado con Spring MVC 4.0.1)