En aquesta secció, implementarem el projecte final utilitzant els coneixements adquirits al llarg del curs. Aquest projecte servirà com a culminació de tot el que has après fins ara, des de la configuració de l'entorn fins a les millors pràctiques i temes avançats.

Objectius del Projecte

  1. Crear una aplicació web bàsica amb Groovy i Grails.
  2. Implementar funcionalitats CRUD (Crear, Llegir, Actualitzar, Eliminar) per a una entitat de dades.
  3. Utilitzar bases de dades per emmagatzemar i recuperar informació.
  4. Provar i depurar l'aplicació per assegurar-ne el correcte funcionament.

Passos per a la Implementació

  1. Configuració del Projecte

Abans de començar amb la implementació, assegura't que el teu entorn de desenvolupament estigui correctament configurat. Si no ho has fet encara, revisa la secció Configuració del Projecte.

  1. Creació de l'Aplicació Grails

  1. Crear un nou projecte Grails:

    grails create-app my-groovy-app
    cd my-groovy-app
    
  2. Executar l'aplicació per assegurar-te que tot està configurat correctament:

    grails run-app
    

    Hauries de veure l'aplicació en execució a http://localhost:8080.

  1. Definició de l'Entitat de Dades

  1. Crear un domini per a l'entitat Producte:

    grails create-domain-class Producte
    
  2. Definir els atributs de l'entitat Producte en el fitxer grails-app/domain/com/example/Producte.groovy:

    package com.example
    
    class Producte {
        String nom
        String descripcio
        BigDecimal preu
        Integer estoc
    
        static constraints = {
            nom blank: false, size: 1..255
            descripcio nullable: true, maxSize: 1000
            preu min: 0.0
            estoc min: 0
        }
    }
    

  1. Implementació de Funcionalitats CRUD

  1. Crear un controlador per a l'entitat Producte:

    grails create-controller Producte
    
  2. Implementar les accions CRUD en el controlador grails-app/controllers/com/example/ProducteController.groovy:

    package com.example
    
    class ProducteController {
    
        def index() {
            respond Producte.list()
        }
    
        def show(Long id) {
            respond Producte.get(id)
        }
    
        def create() {
            respond new Producte(params)
        }
    
        def save(Producte producte) {
            if (producte.save(flush: true)) {
                redirect action: "show", id: producte.id
            } else {
                render view: "create", model: [producte: producte]
            }
        }
    
        def edit(Long id) {
            respond Producte.get(id)
        }
    
        def update(Producte producte) {
            if (producte.save(flush: true)) {
                redirect action: "show", id: producte.id
            } else {
                render view: "edit", model: [producte: producte]
            }
        }
    
        def delete(Long id) {
            Producte.get(id)?.delete(flush: true)
            redirect action: "index"
        }
    }
    

  1. Creació de Vistes

  1. Crear vistes per a les accions CRUD en grails-app/views/producte/:

    • index.gsp
    • show.gsp
    • create.gsp
    • edit.gsp
  2. Exemple de la vista index.gsp:

    <h1>Llista de Productes</h1>
    <table>
        <thead>
            <tr>
                <th>Nom</th>
                <th>Descripció</th>
                <th>Preu</th>
                <th>Estoc</th>
                <th>Accions</th>
            </tr>
        </thead>
        <tbody>
            <g:each in="${producteList}" var="producte">
                <tr>
                    <td>${producte.nom}</td>
                    <td>${producte.descripcio}</td>
                    <td>${producte.preu}</td>
                    <td>${producte.estoc}</td>
                    <td>
                        <g:link action="show" id="${producte.id}">Veure</g:link>
                        <g:link action="edit" id="${producte.id}">Editar</g:link>
                        <g:link action="delete" id="${producte.id}" method="DELETE">Eliminar</g:link>
                    </td>
                </tr>
            </g:each>
        </tbody>
    </table>
    <g:link action="create">Crear Nou Producte</g:link>
    

  1. Proves i Depuració

  1. Executar les proves unitàries per assegurar-te que tot funciona correctament:

    grails test-app
    
  2. Depurar qualsevol error que pugui sorgir durant les proves o l'execució de l'aplicació.

  1. Desplegament

  1. Preparar l'aplicació per al desplegament:

    grails war
    
  2. Desplegar l'arxiu WAR en un servidor d'aplicacions com Tomcat.

Resum

En aquesta secció, hem implementat una aplicació web bàsica utilitzant Groovy i Grails. Hem creat una entitat de dades, implementat funcionalitats CRUD, creat vistes per a les accions, i provat i depurat l'aplicació. Aquest projecte final t'ha permès aplicar tots els coneixements adquirits al llarg del curs i preparar-te per a projectes més complexos en el futur.

© Copyright 2024. Tots els drets reservats