Ejemplo automático con Grails
Una vez instalado Grails vamos a hacer un pequeño ejemplo básico, usando directamente los scripts pre construidos que nos ofrece grails.
En primer lugar, desde una ventana de comandos (cmd de windows, bash de linux, etc), vamos al directorio donde queramos crear nuestro proyecto grails. Nos bastará ejecutar el comando
grails create-app hola-mundo-grails
para crear el proyecto hola-mundo-grails (o el nombre que queramos ponerle). La estructura de directorios creada será
C:\UN_PATH\HOLA-MUNDO-GRAILS ├───.settings ├───grails-app │ ├───conf │ │ ├───hibernate │ │ └───spring │ ├───controllers │ ├───domain │ ├───i18n │ ├───services │ ├───taglib │ ├───utils │ └───views │ └───layouts ├───lib ├───scripts ├───src │ ├───groovy │ └───java ├───test │ ├───integration │ └───unit └───web-app ├───css ├───images │ └───skin ├───js │ └───prototype ├───META-INF └───WEB-INF └───tld
Vamos ahora a crear una clase de nuestro modelo de datos. Esta clase será persistente en base de datos. Para ello, nos metemos en el directorio HOLA-MUNDO-GRAILS y ejecutamos el comando
cd C:\UN_PATH\HOLA-MUNDO-GRAILS grails create-domain-class com.chuidiang.ejemplos.grails.Persona
Esto creará la clase Persona.groovy dentro del directorio grails-app\domain, por supuesto, añadiendo todo el path del paquete com.chuidiang.ejemplos.grails
C:\UN_PATH\HOLA-MUNDO-GRAILS ├───.settings ├───grails-app │ ├───conf │ │ ├───hibernate │ │ └───spring │ ├───controllers │ ├───domain │ │ └───com │ │ └───chuidiang │ │ └───ejemplos │ │ └───grails --> Persona.groovy ...
Ahora, con nuestro editor favorito, editamos esa clase y le ponemos unos cuantos atributos.
package com.chuidiang.ejemplos.grails class Persona { Date fechaNacimiento String nombre String telefono int edad static constraints = { } }
Hemos añadido los campos fechaNacimiento, nombre, telefono y edad de tipos propios de java. El resto lo había creado automáticamente la llamada a grails create-domain-class
Ahora, para generar el resto de la aplicación, escribimos
grails generate-all com.chuidiang.ejemplos.grails.Persona
Esto generará en los directorios grails-app/controller y grails-app/view los controladores y vistas necesarias para poder ver una lista de personas, crear personas nuevas, editar y borrar pesonas existentes.
Ahora podemos arrancar la aplicación con
grails -Dserver.port=8081 run-app
donde -Dserver.port indica el puerto en el que queremos que se lance la aplicación, será 8080 si no ponemos esta opción. Una vez arrancado y si no ha habido errores, bastará con entrar en el navegador en http://localhost:8081/hola-mundo-controller y veremos una pantalla que indica que los controladores disponibles son "PersonaController". Pinchando ese enlace, llegaremos a un listado de personas (vacío) y tenemos enlaces para crear, editar y borrar personas.
Esta aplicación es completamente funcional y utilizará una base de datos HSQLDB en memoria por defecto. Eso sí, arrancando la aplicación de esta manera, la base de datos está en memoria y cuando detengamos la aplicación, perderemos todos los datos.
Nos quedaría configurar la aplicación para que use otra base de datos real, pero eso es para otro tutorial.
Unas pantallas de la aplicación en funcionamiento: