Procesando Datos desde Vista(GET)
Anteriormente hemos visto como se pasan datos desde el controlador hacia las vistas, ahora debemos saber cuĆ”l es la manera que podemos capturar datos que se envĆen desde las vistas hacia el controlador, ya sea que se envĆan los datos por el request o por algĆŗn formulario para ello veremos cada uno de los mĆ©todos y las propiedades que podemos aplicar en spring para hacer las capturas de los datos y procesarlos en nuestros controladores
primero creamos nuestro controlador con el código siguiente:
Lo nuevo en este controlador es que hacemos uso de la anotación @RequestParam, que se encarga de capturar los datos que se envĆan desde el cliente para poder procesarlos, lo importante del uso de dicha anotación es el nombre del dato que se quiere capturar en este caso se identifica por la propiedad name de la anotación.
Ahora creamos el template para asociar a dicho código con el siguiente marcado:
Ejecutamos la aplicación y en el navegador pasamos la siguiente url
Y en le navegador se muestra el siguiente resultado
Esto nos indica que se ha capturado el parƔmetro correspondiente y lo mostramos en pantalla ahora si en el navegador colocamos la url de esta forma
Y la ejecutamos obtendremos el siguiente mensaje de error
En este caso el error surge porque la anotación @RequestParam por defecto se configura con el valor obligatorio es decir el parĆ”metro se tiene que enviar, porque si no es asĆ toma como un request erróneo por la falta de un parĆ”metro, podemos modificar el comportamiento del mĆ©todo para evitar que se genere la pĆ”gina de error haciendo un cambio en la definición del mĆ©todo, lo que se hace es cambiar la propiedad required con valor false, nuestro mĆ©todo en el código debe quedar asĆ.
Y si ejecutmaos la url como lo hicimos anteriormente obtendremos el siguiente resultado en el navegador.
Podemos agregar una propiedad adicional para mostrar un mensaje por defecto cuando no se pasa un dato modificamos el método en el código de la siguiente manera
y en el navegador obtenemos el siguiente resultado
Podemos usar otra forma para el paso de parƔmetros y esta es cuando la url es "amigable" o posee un formato como el siguiente tipo.
En este caso el parĆ”metro se envĆa de una forma un poco mĆ”s legible para tratar este tipo de URL, Spring implementa una anotación la cual nos permite extraer el dato y procesarlo , para ello agregamos el siguiente código a la clase que creamos anteriormente para procesar los datos desde el cliente
Solo es un método adicional en el cual los cambios relevantes son los siguientes en la anotación @GetMapping pasamos un parÔmetro de la forma "/request2/{nombre}", esto es la convención que se usa para definir el mapeo como lo hemos comprobado en anteriores ejemplos pero hay un pequeño cambio hay una elemento encerrado entre llaves, esto va indicarle a spring que es un parÔmetro que pasaremos por la URL para que él lo pueda procesar usando la anotación @PathVariable, al hacer esto en nuestra clase y ejecutarla en el navegador por medio de la url
obtenemos el resultado siguiente en el navegador
En la vista no hay un cambio significativo, pero en la lógica y en la estructura de como enviamos el dato si, con esto definido tenemos dos formas de como poder procesar request del tipo GET que nos envié el cliente .
Last updated
Was this helpful?