Forum JEE: framework STRUTS 1 et iBATIS Projet JEE avancé Forum JEE: framework STRUTS 1 et iBATIS Chef de projet : Mehdi Chekkal Equipe : Ayoub Ait Hadj Brahim, Kévin Firmin, Philippe Phak, Kévin Tassan Toffola
Plan de présentation I. Présentation du Projet : Conception Gestion du groupe Intégration Problèmes rencontrés II. Présentation d'iBatis : Fonctionnement et mise en place Comparaison avec Hibernate III. Présentation de Struts 1 : Comparaison avec d’autres Framework (Stripes, Struts 2) IV. Présentation du Forum : Démonstration
I. Présentation du projet Conception Objectif : Remplir le cahier des charges et aller plus loin. Pré-requis : Formation sur les FrameWorks (Struts V1 & iBatis). Obstacle : Le temps. Gestion du groupe Struts & Design : Gestion des formulaires et de l’ergonomie. Ibatis & BDD : Création de la BDD (Oracle XE) et méthodes d’accès. Intégration Outil : Mise en place d’un SVN pour l’intégration en continue. BDD locale : Diffusion du script de création à chaque mise à jour. Problèmes rencontrés Communication : Interprétations différentes. Organisation : Gestion des autres projets.
II. Présentation d’iBATIS Projet ibatis démarré en 2001 par Clinton Begin Secrets : outil d’encryptage de données personnelles JPetShop : Application J2EE Frameworks DAO & SQLMaps Intégration au projet Apache Disponible pour : Java .Net Ruby
II. Présentation d’iBATIS Fonctionnement
II. Présentation d’iBATIS SQLMaps Mapper des JavaBeans sur des appels SQL Framework abordable JavaBean XML SQL
II. Présentation d’iBATIS DAO Un patron de conception Utilisé dans Ibatis Regroupe les données persistantes dans des classes à part Permet de changer le mode de stockage sans remettre en cause le reste de l’application.
II. Présentation d’iBATIS Installation Le fichier IbatisConfig.xml Création des SqlMaps (xml) Création des Beans
II. Présentation d’iBATIS Ibator Plugin Eclipse Fichier IbatorConfig.xml Mapping xml pour chaqu’une des tables Classes Java (bean) correspondant aux tables Classes Exemple et DAO
Ibatis vs Hibernate Avantages et inconvénients d’ Ibatis : Plus long à configurer et utiliser Flexible (définition des requêtes) Dépend de la base de données Peu de documentation Avantages et inconvénients d’Hibernate : Plus rapide à utiliser Indépendant de la base de données
Struts 1 Présentation But Créé par Craig McClanahan et donné à la fondation Apache en mai 2000. Mise en œuvre du Design Pattern Front Controller Framework MVC : avantages
Struts 1 Fonctionnement Fichier struts-config.xml Offre la description de deux éléments principaux Les objets de type ActionForm Requêtes avec paramètres (formulaires) Gèrent et stockent ces paramètres Description dans le struts-config : <form-beans> <form-bean name="PosterMessageForm" type="forum.PosterMessageForm" /> </form-beans>
Struts 1 Instanciation automatisée Composés des attributs correspondant au formulaire + getter / setter Validation des données envoyées Méthode validate et ActionErrors Ajout d’une erreur Fichier properties <html:errors/>
Struts 1 Les objet de type Action ActionForward execute(ActionMapping, ActionForm, HttpServletRequest, HttpServletResponse) Description dans le struts-config : <action-mappings> <action path="/PosterMessage" type="forum.PosterMessageAction" name="PosterMessageForm" scope="request" validate="true" input="/indexMessage.jsp"> <forward name="show_results" path="/resultMessages.jsp" /> </action> <action-mappings> Requêtes sans paramètres : type = "org.apache.struts.actions.ForwardAction"
Struts 1 Gestion des langues 1 fichier properties par langue Exemple : MessageResources.properties(fichier par défaut) : error.promoField.notValid=Invalid promo entered. MessageResources_fr.properties(fichier pour la locale_fr) : error.promoField.notValid=La promo entrée est invalide. <message-resources parameter="MessageResources" /> <bean:message key="error.promoField.notValid"/> Automatisée
Struts Caractéristiques de Struts : Conclusion : Utilisation et mise en place : Un Action et un ActionForm Un fichier de configurations XML Validation : Non couplée à la conversion de type Customisée difficile à mettre en place (édition du fichier validator.xml) Conclusion : Bonne documentation Fastidieux à utiliser au début
Struts 1 vs Stripes Caractéristiques de Stripes : Conclusion : Utilisation et mise en place : Un actionBean Un fichier de configurations XML : web.xml Validation : Couplée à la conversion de type Customisée simple à mettre en place avec des annotations Conclusion : Beaucoup plus simple à mettre en œuvre Redirection moins bien gérée
Struts 1 vs Struts 2 Caractéristiques de Struts 2 : Conclusion : Utilisation et mise en place : Un action Un fichier de configurations XML Validation : Couplée à la conversion de type Customisée simple à mettre en place avec des annotations ou avec le fichier validator.xml Conclusion : Plus simple à mettre en œuvre Moins bonne documentation
IV. Présentation du Forum Conception La base de données Le MVC Démonstration