Secciones

Templates en Grails

Inicio » Artículos » Templates en Grails
La categoría del artículo es
Escrito el 2 July 2010, 11:15


Una de las cosas que más me gustan en Grails es que, a partir de un esquema de clases de dominios, con un simple comando sea capaz de generar una aplicación completa. Pero, ¿cómo hace esto Grails?

Si nos movemos un poco por el núcleo de Grails encontraremos el directorio $GRAILS_HOME/src/grails/templates/scaffolding, en el que veremos una serie de archivos que son:

  • Controller.groovy
  • create.gsp
  • edit.gsp
  • list.gsp
  • renderEditor.template
  • show.gsp

Si echamos un vistazo rápido a estos archivos, nos daremos cuenta de que esas son las plantillas que Grails utiliza cuando hacemos un grails generate-all. Pero, ¿qué pasa si estas plantillas no nos gustan y queremos modificarlas?

Podemos optar por dos opciones. La primera de ellas supone modificar directamente y con mucho cuidado los archivos del directorio $GRAILS_HOME/src/grails/templates/scaffolding para que queden a nuestro gusto y con las necesidad de la aplicación a desarrollar. Sin embargo, esta opción tiene dos inconvenientes. El primero de ellos es que todas las aplicaciones generadas automáticamente con el scaffolding de Grails tendrán la misma apariencia, lo cual es muy probable que no queramos. Y el segundo inconveniente es que si actualizamos la versión de Grails, esas plantillas modificadas se perderán y tendremos que copiarlas de nuevo al núcleo de Grails.

La segunda opción pasa por utilizar esas mismas plantillas del núcleo de Grails pero que pasen a formar parte de la propia aplicación desarrollada. En Grails tenemos el comando grails install-templates que lo que hace básicamente es copiar esas plantillas del núcleo de Grails a un directorio propio del proyecto, en este caso $GRAILS_PROJECT/src/templates/scaffolding. Una vez estén las plantillas en ese directorio, ya podremos modificarlas a nuestro gusto. De esta forma, cuando ejecutemos un grails generate-all y Grails detecte que en ese directorio hay unas plantillas, utilizará éstas en lugar de las existentes en el núcleo de Grails.


¿Has modificado alguna vez las plantillas de Grails?

your_ip_is_blacklisted_by sbl.spamhaus.org.