• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - TD
 

ENIB cours CAI Web - Séance 4 - Frameworks/Spring - TD

on

  • 768 views

 

Statistics

Views

Total Views
768
Views on SlideShare
768
Embed Views
0

Actions

Likes
0
Downloads
23
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    ENIB cours CAI Web - Séance 4 - Frameworks/Spring - TD ENIB cours CAI Web - Séance 4 - Frameworks/Spring - TD Presentation Transcript

    • TD - Spring MVC
    • Setup - Config resourcesRécupérer le projet /home/TP/modules/sujets/CAI/WEB/td-spring/spring-mvc-td.tar.gzet linstaller dans votre workspaceSous Eclipse dans le serveur.xmlUtilisation dun Tomcat 6<GlobalNamingResources><Resource auth="Container"driverClassName="org.apache.derby.jdbc.EmbeddedDriver"maxActive="8" maxIdle="4"name="jdbc/devenib-ds" type="javax.sql.DataSource"url="jdbc:derby:devenib-ds;create=true"username="" password="" /></GlobalNamingResources>.....<Context docBase="spring-mvc" path="/spring-mvc" reloadable="true" source="org.eclipse.jst.jee.server:spring-mvc"><ResourceLink name="jdbc/devenib-ds" global="jdbc/devenib-ds" type="javax.sql.DataSource" /></Context>
    • Sous EclipseDans le vue JEE dans la View Server -> serveur localhost Tomcat 6 -> Open (F3) ->lien Open Lauch ConfigurationSetupConfiguration du TomcatOpen (F3)Java EE View
    • SetupOuvrir la configuration de lancement du TomcatConfiguration de lancement
    • SetupOnglet Arguments : Indiquer au conteneurlemplacement de la base de données-Dderby.system.home="/<REPERTOIRE HOME ENIB>/derby/Databases"
    • SetupOnglet Classpath : Indiquer au conteneurlemplacement des jar de la base de donnéesAjouterUser Entries : Add External Jar : derby.jarderby.jar disponible sous /home/TP/modules/sujets/CAI/WEB/db-derby-10.9.1.0-bin/lib
    • SetupCreation BDD DerbyExécuter le script de création de la base de données/home/TP/modules/sujets/CAI/WEB/td-spring/createbdd.sh
    • Run Serveur● Sous Eclipse○ clean○ publish○ start● Le serveur doit démarrer sans erreur● possibilité de créer un compte dans le menu sign-up
    • Le bean BeerStore a les propriétés suivantes (spring-ioc.xml):id : beerStoreclass : fr.enib.cai.springframework.model.business.impl.BeerStoreImplscope : singletonLannotation @Autowired sur linterface BeerStore permet de notifier à Springdinjecter limplémentation correspondante.Attention : Toute modification de linjection (xml ou annotation) nécessite unredémarrage du serveur sous Eclipse.Injectiondéclaration au bean beerStore
    • Servir la JSP bar.jsp pour toute méthode GET sur lurl /private/barDans la classe BarControleurSur une requête GET url= http://localhost:8080/spring-mvc/private/barforwarder vers la page bar.jspCette JSP affiche la liste des bières de lutilisateur connectéCette méthode printHome() réalisera :La récupération de lutilisateur connectéLa récupération des bières de lutilisateurLe forward vers la page bar.jspBarControleurGet
    • Le formulaire beer/add (Home.jsp) est soumis via une requête AJAX.URL http://localhost:8080/spring-mvc-tp/private/beer/addJSON {"name":"1664","brewery":"Kronenbourg","country":"France","alcohol":"5,5"}Créer dans la classe HomeControleur une methode validateField avec les propriétés suivantes :urlmapping : /private/beer/addtype : JSON (RequestBody / ResponseBody)request method : POSTCette méthode réalisera :Le contrôle de validation du formulaireEn cas de succes :ajouter la bière au beerStorecréeer un object AddBeerStatus relatant le résultat de lopérationEn cas derreur :créer un object AddBeerStatus les erreurs de validationretourner cet objetRésultat attendu :La bière doit être ajoutée à la liste de bières en cas de succèsLes messages derreur doivent safficher dans la lightwindow addBeer.AddBeerSoumission du formulaire
    • Le plus "+" dans le tableau appel un service AJAX dajout de bière dans lestockURL http://localhost:8080/spring-mvc-tp/private/bar/checkinJSON {"id":2,"amount":"7"}Créer dans la classe BarControleur ajouter une methode checkin avec les propriétés suivantes :urlmapping : /private/bar/checkintype : JSON (RequestBody / ResponseBody)request method : POSTCette méthode réalisera :Récupération de lutilisation connectéValidation de inputCheck in du nombre amount dans le stock de la bière idRetourne un JSON avec le nouveau stock (classe CheckInCheckOutStatus)BarControleurAjout de bière dans le stock
    • Le plus "-" dans le tableau appel un service AJAX dajout de bière dans lestockURL http://localhost:8080/spring-mvc-tp/private/bar/checkoutJSON {"id":2,"amount":"7"}Créer dans la classe BarControleur ajouter une methode checkout avec les propriétés suivantes :urlmapping : /private/bar/checkouttype : JSON (RequestBody / ResponseBody)request method : POSTCette méthode réalisera :Récupération de lutilisation connectéValidation de inputCheck out du nombre amount dans le stock de la bière idRetourne un JSON avec le nouveau stock (classe CheckInCheckOutStatus)BarControleurRetrait de bière dans le stock
    • Modèle MétierAjout de la persistance (BDD)Limplémentation BeerStoreImpl na pas de persistance... cest mal● Créer une nouvelle implémentation BeerStoreJDBCImpl● créer un modèle SQL correspondant aux HashMap... ou mieux !○ Le déployer sur votre Derby local● injecter un driver jdbc dans la classe BeerStoreJDBCImpl● Utiliser les preparedStatement pour requêter la base de données● Enjoy votre application a de la persistance, vous pouvez la déployer surCloubees !
    • Front tunningPour ceux qui sennuient...● Ajouter des images aux bières● Mettre un carroussel Bootstrap sur la pages daccueil publique● Debugguer lapplication (il y en a beaucoup, cest Seb qui a codé :P)○ linternationalisation ko sans cookies○ formulaires addBeer ne traitent pas toutes les erreurs