requestparam name mvc multiple example español spring spring-mvc annotations

name - spring mvc español



cómo capturar múltiples parámetros usando @RequestParam usando spring mvc? (4)

A partir de Spring 3.0, también puede usar MultiValueMap para lograr esto:

Un ejemplo rudimentario sería:

public String someMethod(@RequestParam MultiValueMap<String,String> params) { final Iterator<Entry<String, List<String>>> it = params.entrySet().iterator(); while(it.hasNext()) { final String k = it.next().getKey(); final List<String> values = it.next().getValue(); } return "dummy_response"; }

Supongamos que se hace clic en un hipervínculo y se lanza una url con la siguiente lista de parámetros myparam=myValue1&myparam=myValue2&myparam=myValue3 . Ahora, ¿cómo puedo capturar todos los parámetros usando @RequestRaram en Spring mvc?

Mi requisito es que tengo que capturar todos los parámetros y ponerlos en un mapa.

¡Por favor ayuda!


Para obtener todos los parámetros a la vez, intente esto:

public ModelAndView postResultPage(@RequestParam MultiValueMap<String, String> params)

Esta característica se describe en @RequestParam java doc (3. Párrafo):

Anotación que indica que un parámetro de método debe vincularse a un parámetro de solicitud web. Compatible con métodos de controlador anotados en entornos de servlets y portlets.

Si el tipo de parámetro de método es Mapa y se especifica un nombre de parámetro de solicitud, el valor del parámetro de solicitud se convierte en un Mapa suponiendo que hay una estrategia de conversión adecuada disponible.

Si el parámetro del método es Map<String, String> o MultiValueMap<String, String> y no se especifica un nombre de parámetro, el parámetro de mapa se rellena con todos los nombres y valores de parámetros de solicitud.


Parece que no puedes obtener

Map<String,String>

porque todos tus params tienen el mismo nombre "myparam"

Pruebe esto en su lugar:

public ModelAndView method(@RequestParam("myparam") List<String> params) { }


@RequestMapping(value = "users/newuser", method = RequestMethod.POST) public String saveUser(@RequestParam Map<String,String> requestParams) throws Exception{ String userName=requestParams.get("email"); String password=requestParams.get("password"); //perform DB operations return "profile"; }

Puede usar RequestParam de la manera mencionada anteriormente.