Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

443
Vistas
Spring Boot: ¿cómo obtener todos los parámetros de solicitud en un mapa en Spring RestController?

Ejemplo de URL:

 ../get/1?attr1=1&attr2=2&attr3=3

No sé los nombres de attr1, att2 y attr3.

Cuando ejecuté este código, obtengo el tamaño de 'allRequestParams' igual a 1

 @RequestMapping(value = "/get/", method = RequestMethod.GET) public String search( @RequestParam Map<String,Integer> allRequestParams) { System.out.println(allRequestParams.size()); return ""; }

¿Es un problema con Spring o escribí un código incorrecto? ¡Gracias!

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Si está pasando los atributos de la solicitud en forma de parámetros de consulta, puede obtenerlos directamente usando HttpServletRequest. Pase como parámetro a su método y utilícelo como httpServletRequest.getParameterMap(). Esto devolverá un java.util.Map inmutable de parámetros de solicitud. Cada entrada del mapa tendrá la clave de tipo String y el valor de tipo String[]. Entonces, si solo tiene un valor, puede acceder directamente como entrada. getValue () [0] le daría el primer valor. El código se parece a esto para acceder a los valores.

 @RequestMapping(value = "/get/", method = RequestMethod.GET) public String search(HttpServletRequest httpServletRequest) { Map<String, String[]> requestParameterMap = httpServletRequest.getParameterMap(); for(String key : requestParameterMap.keySet()){ System.out.println("Key : "+ key +", Value: "+ requestParameterMap.get(key)[0]); } return ""; }

Espero que esto ayude !!

over 4 years ago · Santiago Trujillo Denunciar

0

Puede definir un POJO que contenga un mapa. Algo como a continuación:

 @RequestMapping(value = "/get/{searchId}", method = RequestMethod.POST) public String search( @PathVariable("searchId") Long searchId, @RequestParam SearchRequest searchRequest) { System.out.println(searchRequest.getParams.size()); return ""; } public class SearchRequest { private Map<String, String> params; }

Objeto de solicitud:

 "params":{ "birthDate": "25.01.2011", "lang":"en" }
over 4 years ago · Santiago Trujillo Denunciar

0

Para su ejemplo específico, ¿no le falta un @PathVariable para acceder a la variable Path con el valor "1" en su URL de ejemplo?

 @RequestMapping(value = "/get/{searchId}", method = RequestMethod.GET) public String search( @PathVariable("searchId") Long searchId, @RequestParam Map<String,String> allRequestParams) { System.out.println(allRequestParams.size()); return ""; }

Además, ¿estás importando java.util.Map?

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda