Your SlideShare is downloading. ×
ENIB cours CAI Web - Séance 4 - Frameworks/Spring - TD
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

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

583
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
583
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. TD - Spring MVC
  • 2. 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>
  • 3. 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
  • 4. SetupOuvrir la configuration de lancement du TomcatConfiguration de lancement
  • 5. SetupOnglet Arguments : Indiquer au conteneurlemplacement de la base de données-Dderby.system.home="/<REPERTOIRE HOME ENIB>/derby/Databases"
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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 !
  • 15. 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