requestparam requestmapping postmapping multiple example java spring-mvc path-variables

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)