Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

437
Views
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!

about 4 years ago · Santiago Trujillo
3 answers
Answer question

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 !!

about 4 years ago · Santiago Trujillo Report

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" }
about 4 years ago · Santiago Trujillo Report

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?

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!