Secciones

Los controladores en Grails

Inicio » Artículos » Los controladores en Grails
La categoría del artículo es
Escrito el 29 July 2009, 13:12


En una aplicación que siga el patrón Modelo Vista Controlador, los controladores son los componentes que se encargan de recibir las órdenes por parte del usuario, gestionar la ejecución de la lógica de negocio y posteriormente actualizar la vista para que el usuario pueda ver como ha quedado el modelo de datos tras las actualizaciones pertinentes.

Hablando en términos de aplicaciones web, los controladores se encargan de interceptar las peticiones HTTP del navegador y generar la respuesta correspondiente, bien sea html, xml, json o cualquier otro formato, bien desde el propio controlador o delegando el trabajo en una vista GSP.

La convención que utiliza Grails en el caso de los controladores es que un controlador es cualquier clase que se encuentre en el directorio grails-app/controllers de nuestro proyecto y su nombre termine por la palabra Controller.

Cuando comenté el scaffolding de Grails ya vimos el comando grails create-controller que nos creaba el esqueleto de la clase de un controlador. En ese momento realizábamos un scaffolding dinámico o al vuelo. Sin embargo, si ejecutamos el comando grails generate-controller Usuario y abrimos el archivo UsuarioController.groovy, comprobaremos que su contenido se ha modificado bastante del que teníamos al principio y se han generado una serie de métodos index(), list(), show(), delete(), edit(), update(), create() y save(), que coinciden con los métodos necesarios para realizar el scaffolding de forma estática.

Con este scaffolding estático, vamos a tener más margen de maniobra para implementar mejoras en los controladores de la aplicación, para que ésta quede a nuestro gusto. Estas mejoras se suelen referir por ejemplo al establecimiento de controles de seguridad de acceso por parte de los diferentes usuarios del sistema.


¿Qué te parecen la gestión de los controladores en Grails?

your_ip_is_blacklisted_by sbl.spamhaus.org.