Enib cours c.a.i. web - séance #5 : td grails

Post on 06-Jul-2015

242 views 2 download

Transcript of Enib cours c.a.i. web - séance #5 : td grails

Conception d'Applications Interactives :

Applications Web et JEESéance #5TD Grails

Objectif

● Dans les 2 séances précédentes, vous avez travaillé à remplir des trous dans des applications déjà faites ○ Modèle de développement complèxe

● Maintenant c'est à vous de faire l'application○ En partant de zéro

Installation de Grails

● Sur votre poste personnel :

○ Pré-requis : Java JDK 6 ou JDK 7○ Moteur Grails : http://www.grails.org/ ○ IDE GGTS (base Eclipse) : http://www.springsource.

org/downloads/sts-ggts

Des clés USB a disposition pour l'install Windows et Linux

Installation de Grails● Sur un poste ENIB :

○ Moteur Grails :/home/TP/modules/sujets/CAI/DevWeb/grails

○ IDE GGTS (base Eclipse) : /home/TP/modules/sujets/CAI/DevWeb/ggts

Le moteur Grails et l'IDE s'exécutent depuis leur répertoire d'installation

Créer une application grails

● Démarrer le GGTS et créer un nouveau projet Grails : enibieres

Créer une application grails● Exécuter l'application avec run-app● Vérifier sur le navigateur http://localhost:

8080/ENIBieres/

Création du modèle de données● Créer une Domain Class enibieres.Beer

○ Attributs : id, name, brewery, country, alcohol

○ Traduction en Groovy du POJO du TD Servlet

○ Si votre Domain Class fait plus de 10 lignes, c'est trop !

Création du controleur● Créer un Controller enibieres.

BeerController ○ Pour tester rapidement :

■ Dans la méthode index() faire render "Hello ENIB"

Créer une bière● Dans BeerController ajouter ce qu'il faut pour

pouvoir ajouter, enlever, modifier et lister des bières○ Si la classe fait plus de 5 lignes, vous faites fausse

route

L'alcool est entre 0 et 90 degrées !● Dans BeerController utiliser des constraints

pour ○ Afficher les champs dans le bon ordre (name d'abord)○ N'accepter des champs à vide○ N'accepter des valeurs d'alcohol qu'entre 0 et 90

Stock options● Il ne nous manque que gérer le stock● Dans le modèle, ajouter un champ stock