0%
Controladores y vistas

Controladores

Enrutar una petición, producir una página, redirigir correctamente.

15-20 min

Controladores y vistas

Un controlador de Spring MVC se parece tanto a una clase Java corriente que se olvida la cantidad de trabajo que el framework realiza a su alrededor. Un método declara @PathVariable Long id, @RequestParam int page, Model model y recibe tres valores listos para usar, extraídos de tres lugares distintos de la petición, convertidos al tipo correcto y validados. Ninguna de esas conversiones aparece en su código.

Esta economía tiene un precio: cuando algo sale mal, la causa suele ser invisible porque reside en una convención que no conocía. Una variable de ruta que llega vacía porque su nombre no coincide. Un parámetro ausente que provoca un 400 cuando se habría querido opcional. Una redirección tras un formulario que pierde el mensaje de confirmación. Un objeto añadido al modelo pero que no se encuentra en la plantilla.

Todas estas situaciones tienen el mismo origen: el contrato entre su método y el framework se basa en nombres y tipos, no en código explícito. Comprender ese contrato es comprender dónde mirar cuando no se respeta.

Esta lección detalla ese contrato en ambos sentidos —lo que el método puede recibir y lo que puede devolver— y pasa después a la vista con Thymeleaf: iteración, fragmentos reutilizables y el mecanismo de los atributos flash, que resuelve de una vez por todas el problema del mensaje de confirmación tras una redirección.

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!