Crear un aplicación en Grails que guarde una imagen
Descripción:
App de grails que guarde imágenes
Nivel: Básico
1
1.1
abrir consola cmd
1.2
ir al directorio donde se quiera crear la aplicación: en windows para navegar por directorios en consola se usa el comando cd.
2
Crear aplicación: una vez en el directorio deseado: escribir el siguiente comando:
grails create-app ImgsGrailsApp
2.2
escribir en la consola para entrar a la aplicación: cd ImgsGrailsApp
3
Crear clase de dominio: escribir en consola:
grails create-domain-class imagen
3.2
editar el archivo creado localizado en:
ImgsGrailsApp\grails-app\domain\imgsgrailsapp\Imagen.groovy
opcionalmente puedes abrir una interfaz grafica donde se editan comandos groovy
escribir el comando:
grails console
ImgsGrailsApp\grails-app\domain\imgsgrailsapp\Imagen.groovy
opcionalmente puedes abrir una interfaz grafica donde se editan comandos groovy
escribir el comando:
grails console
3.3
el archivo quedaría de la siguiente forma:
class Imagen {
Date lastUpdated
Date dateCreated
byte[] screenshot
static constraints = {
screenshot(maxSize:1073741824)
}
}
4
crear el controlador: escribir en consola:
grails create-controller imagen
4.2editar el archivo creado localizado en:
ImgsGrailsApp\grails-app\controllers\imgsgrailsapp\ImagenController.groovy
4.3
añadimos el siguiente codigo:
def scaffold = Imagen
def showImage = {
def imagen = Imagen.get( params.id )
response.outputStream << imagen.screenshot
response.outputStream.flush()
}
5
generamos las vistas: escribir el comando:
grails generate-views imagen
nos creara los archivos de edición, crear, listar y mostrar de la clase Imagen
localizados en:
ImgsGrailsApp\grails-app\views\imagen
5.1
abrimos el archivo:
ImgsGrailsApp\grails-app\views\imagen\list.gspen este archivo esta lo que se va a mostrar cuando se vea la lista de imágenes
-vamos a la linea donde esta
<g:each in="${imagenInstanceList}" status="i" var="imagenInstance"> <tr class="${(i % 2) == 0 ? 'even' : 'odd'}"> <td>
- a partir de aquí modificamos este td y quedaría de la siguiente manera
<g:link action="show" id="${imagenInstance.id}">${fieldValue(bean: imagenInstance, field: "id")}
<img width="20%" height="20%" alt="Img" src="http://localhost:8080/ImgsGrailsApp/imagen/showImage/${imagenInstance.id}">
</g:link>
5.2
abrimos el archivo:
ImgsGrailsApp\grails-app\views\imagen\show.gspen este archivo esta lo que se va a mostrar cuando se vea una de imágen
-vamos a la linea donde esta
<ol class="property-list imagen">
<g:if test="${imagenInstance?.screenshot}">
<li class="fieldcontain">
<span id="screenshot-label" class="property-label"><g:message code="imagen.screenshot.label" default="Screenshot" /></span>
<ol class="property-list imagen">
<g:if test="${imagenInstance?.screenshot}">
<li class="fieldcontain">
<span id="screenshot-label" class="property-label"><g:message code="imagen.screenshot.label" default="Screenshot" /></span>
-a partir de aqui añadimos el siguiente código, quedaría antes de cerrar el li
<g:link action="showImage" id="${imagenInstance.id}">${fieldValue(bean: imagenInstance, field: "id")}
<img alt="img" src="http://localhost:8080/ImgsGrailsApp/imagen/showImage/${imagenInstance.id}">
</g:link>
6
probamos la aplicación: escribimos el comando:
grails run-app