Projet JAVA EE Approfondi Etudes des frameworks JSF & Ibatis – Réalisation d’un forum ALBE Aurélien – AOUAD Hind – CHEA Sann-Rémy – FERREZ Rémi – HEBERT Quentin – LEBEL Gwendal
Plan de la présentation Objectifs et organisation du projet Rappel des objectifs du projet Organisation du travail et phase de développement Respects des délais Difficultés rencontrées Framework de persistance : Ibatis Présentation du framework Comparaison avec Hibernate Framework MVC : JSF Comparaison avec Struts Démonstration
Objectifs et organisation Rappel des objectifs du projet Familiarisation avec deux autres frameworks utilisés en entreprise Réalisation d’un forum simple, multi sujets, messages, utilisateurs (simple et administrateur) Organisation du travail Répartition des tâches en phase de conception et études de frameworks (Modélisation UML, MCD, études de l’installation des frameworks) Répartition des tâches pour la phase de développement/test Mise en place d’un SVN (SourceForge) et d’un Googlegroup Respects du planning Respecté en phase de conception et en début de développement Chevauchement de la phase de tests avec la fin du développement Difficultés rencontrées Appréhension difficiles des frameworks Choix des limites de réalisation (mp, stats, épingler des sujets, ban, …)
iBATIS Framework de persistance de données SQL Maps Java - .NET - Ruby on Rails Fichiers de configuration XML / .properties SQL Maps Mapping XML Relation BDD Objet DAO (Data Access Object) Accès simple à la BDD Implémentation des requêtes SQL SELECT PER_ID as id, PER_FIRST_NAME as firstName, PER_LAST_NAME as lastName, PER_BIRTH_DATE as birthDate, PER_WEIGHT_KG as weightInKilograms, PER_HEIGHT_M as heightInMeters FROM PERSON WHERE PER_ID = #value#
Ibator Plugin pour Eclipse Paramétrage par fichier XML Génération automatique de classes Java Beans Examples Critères DAO Nombreuses requêtes implémentées Utilisation des examples Utilisation des clés primaires
Ibatis et Hibernate Hibernate : Plus complet Indépendant de la base de données Hibernate permet la création d’un modèle d’objet ( en Java ) par l’utilisateur et crée la base de donnée automatiquement. Ibatis : Plus simple à utiliser Flexible (définition des requêtes) Dépend de la base de données Peu de documentation A la différence d'Hibernate, l’utilisateur d’iBATIS reste maître du SQL généré. Il permet juste de mapper des requêtes SQL sur des objet en se basant sur une Map.
JSF 2.0 Java Server Faces Framework d'interface utilisateur pour les applications web Basé sur JSP et Servlet MVC : Les composants JSF font partie de la vue La partie modèle est représentée par des JavaBeans. Le rôle du contrôleur est joué par la Servlet de JSF. (managed-bean)
JSF 2.0 Fichier JSF
JSF 2.0 Bean Managé (faces-config.xml) <faces-config> <managed-bean> <managed-bean-name>utilisateur</managed-bean-name> <managed-bean-class>model.Utilisateur</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> </faces-config>
JSF 2.0 Règles de navigation (faces-config.xml) <faces-config> <navigation-rule> <from-view-id>/formulaire.jsp</from-view-id> <navigation-case> <from-outcome>Ok</from-outcome> <to-view-id>/ok.jsp</to-view-id> </navigation-case> <from-outcome>Erreur</from-outcome> <to-view-id>/erreur.jsp</to-view-id> </navigation-rule> </faces-config>
Comparaison JSF-Struts Point commun: Framework MVC JSF est orienté « View Controller » Struts est orienté « Action Controller » Complémentaire JSF a profité de la maturité de Struts et s’en est inspiré.
Comparaison JSF-Struts Points forts de Struts: Tag lib pour les vues Paramétrage par des fichiers XML (Emplacement des beans, mapping,…) Pas de servlet mais des Action et des Action Form (Formulaire facilité avec vérification des champs) Paramétrage des langues (messageRessource.properties) Points faibles de Struts: Installation et paramétrage difficile Erreur difficile à trouver (Car séparation des fichiers et des action à effectuer) Points forts de JSF: Utilise les managed bean Contrôle de formulaire facilité Nombreux composants graphiques réutilisable Facilite et standardise le développement d’applications web Mapping HTML/Objet Configuration de la navigation entre les pages Point faible JSF: Maturité: technologie récente qui nécessite l'écriture de beaucoup de code Manque de composants évolués en standard: La plupart ont une correspondance directe avec l'HTML Dépendance des JSTL/EL
Démonstration du forum