1 / 38

JSF

David Mihura Eric Le Merdy. JSF. Java Server Faces. Master 2 Pro GLR TER. Plan. Problématique Bref Historique Solution JSF Principes Mise en Œuvre des principes Quelques outils Bilan Conclusion. Problématique. Evolutions des besoins : Applications Web

isaiah
Download Presentation

JSF

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. David Mihura Eric Le Merdy JSF Java Server Faces Master 2 Pro GLR TER

  2. Plan • Problématique • Bref Historique • Solution JSF • Principes • Mise en Œuvre des principes • Quelques outils • Bilan • Conclusion JSF – Le Merdy Eric – Mihura David

  3. Problématique • Evolutions des besoins : Applications Web • Problème : Comment concevoir une application Web de la même façon qu'une application traditionnelle • Plusieurs solutions existent : • WebForms : Microsoft • Struts : Apache • JSF : Sun JSF – Le Merdy Eric – Mihura David

  4. Bref Historique • Divergences d'approche selon les éditeurs. • Plus grande séparation des concepts. JSF – Le Merdy Eric – Mihura David

  5. Solution JSF Framework de création d’interfaces graphiques pour les applications Web JSF – Le Merdy Eric – Mihura David

  6. Un concept en évolution • Demande de spécification en Mai 2001 • Plusieurs versions de spécifications Sun • Final : 1.0 (début 2004) • Maintenance : 1.1 (fin 2004) • Plusieurs implémentations • Référence (Sun) compatible 1.1 • MyFaces (Apache) • Ecruiser compatible 1.1 • Une version 1.2 est en cours JSF – Le Merdy Eric – Mihura David

  7. JSF et MVC • Modèle : • Couplé à JSF par un Bean géré. • Vue : • JSP + balises JSF • Contrôleur : • Servlet (FaceServlet) • Règles définies dans un fichier xml JSF – Le Merdy Eric – Mihura David

  8. Principes JSF – Le Merdy Eric – Mihura David

  9. Principes : composants graphiques • Fonctionnalité du composant définie dans la classe du composant • Plusieurs rendus pour un même composant • Possibilité de définir des rendus JSF – Le Merdy Eric – Mihura David

  10. Principe : gérer des événements • Chaque composant génère des événements (Events) • Le serveur possède des écouteurs (Listeners) qui traitent les événements JSF – Le Merdy Eric – Mihura David

  11. Principes : gestion de l’état des composants • L’état peut changer chez le client entre 2 requêtes • JSF prend en charge la gestion de cet état JSF – Le Merdy Eric – Mihura David

  12. Gérer événement EVENEMENT Exemple d’événements X Accepter value_changed action Changement état Enregistrement formulaire JSF – Le Merdy Eric – Mihura David

  13. Principes : validation et conversion • Validation : • Agit sur les composants graphiques (textfield) • Personnalisation des validateurs (bornes, types, etc.) • Lève des erreurs • Conversion : • Formatage des données • Ex : 15000 → 15,000 • Personnalisation possible JSF – Le Merdy Eric – Mihura David

  14. Principes : navigation des pages • Définitions de l’enchaînement des pages par un ensemble de règles de navigation JSF – Le Merdy Eric – Mihura David

  15. Principes : internationalisation • Possibilité de définir des locales • Correspondance • clé → valeur internationalisée useridLabel=Userid passwordLabel=Password loginSubmitLabel=Login useridLabel=Nom de l'Utilisateur passwordLabel=Mot de Passe loginSubmitLabel=Connectez JSF – Le Merdy Eric – Mihura David

  16. Principes : balises JSF • Rappels JSP: • Page html qui peut contenir du code Java • A l’exécution cette page est convertie en servlet • Contient des balises JSP • JSTL ( bibliothèque de balises standard pour java) • JSF propose une bibliothèque de balises JSF – Le Merdy Eric – Mihura David

  17. Mise en Œuvre des principes JSF – Le Merdy Eric – Mihura David

  18. Etude de cas • Une page de login • Un seul utilisateur valide • 3 pages : • Authentification • Accueil (si réussie) • Erreur (sinon) JSF – Le Merdy Eric – Mihura David

  19. 1. Le bean du support • Dans un package jsfLogin JSF – Le Merdy Eric – Mihura David

  20. 2. Déclaration du bean dansface-config.xml <managed-bean> <managed-bean-name>LoginServer</managed-bean-name> <managed-bean-class>jsflogin.loginServer</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> JSF – Le Merdy Eric – Mihura David

  21. 3. Création des pages • <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> • <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> • Import des librairies • Ressources (internationalisation) • Utilisation des balises • <f:loadBundle basename="jsflogin.Resources" var="jsfloginBundle"/> • <h:form id="loginForm"> • <h:input_text id="userid" required="true" value="#{LoginServer.userid}" > • <f:validate_length minimum="4" maximum="7" /> • </h:input_text> • <h:command_button id="submit" action="#{LoginServer.loginAction}" value="#{jsfloginBundle.loginSubmitLabel}"/> • </h:form> JSF – Le Merdy Eric – Mihura David

  22. /success.jsp return /login.jsp success /failure.jsp failure 4. Navigation des pagesface-config.xml <navigation-rule> <from-view-id>/login.jsp</from-view-id> <navigation-case> <description>Handle case for successful login</description> <from-action>#{LoginServer.loginAction}</from-action> <from-outcome>success</from-outcome> <to-view-id>/success.jsp</to-view-id> </navigation-case> <navigation-case> <description>Handle case for unsuccessful login</description> <from-action>#{LoginServer.loginAction}</from-action> <from-outcome>failure</from-outcome> <to-view-id>/failure.jsp</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <from-view-id>/success.jsp</from-view-id> <navigation-case> <from-outcome>return</from-outcome> <to-view-id>/login.jsp</to-view-id> </navigation-case> </navigation-rule> JSF – Le Merdy Eric – Mihura David

  23. Quelques outils Java Studio Creator Plugin Eclipse : JSF Studio D’autres outils JSF – Le Merdy Eric – Mihura David

  24. Java Studio Creator (1/3) • Produit Sun • Licence propriétaire • IDE complet • Serveur J2EE intégré • Basé sur NetBeans • Développement « à la souris » JSF – Le Merdy Eric – Mihura David

  25. Java Studio Creator (2/3) • Points forts • Développement rapide • Tout est intégré • Points faibles • Moins de maîtrise sur le code généré • Entièrement Sun (forte dépendance) • Produit jeune • Manque de robustesse JSF – Le Merdy Eric – Mihura David

  26. Java Studio Creator (3/3) JSF – Le Merdy Eric – Mihura David

  27. Eclipse : JSF Studio (1/3) • Plug-in propriétaire pour Eclipse • Gère plusieurs serveurs d’application (Tomcat, JBoss, etc …) • Perspective JSF • Template de projets • Editeur graphique pour le face-config • Edition assistée de code JSP JSF – Le Merdy Eric – Mihura David

  28. Eclipse : JSF Studio (2/3) • Points forts: • Puissance d’Eclipse • Editeur JSP complet • Indépendant du serveur • Point faible • Manque de performance JSF – Le Merdy Eric – Mihura David

  29. Eclipse : JSF Studio (3/3) JSF – Le Merdy Eric – Mihura David

  30. D’autres outils JSF • MyEclipse • WebFaces • Faces console • Standalone • JDeveloper • JBuilder • NetBeans • Eclipse JSF – Le Merdy Eric – Mihura David

  31. Bilan JSF vs Struts Attentes respectées ? JSF – Le Merdy Eric – Mihura David

  32. JSF vs Struts (1/3) • Rappels Struts : • Framework d’application Web • Licence Apache • Mêmes principes (MVC,fichier de navigation) • Pas de spécifications formalisées JSF – Le Merdy Eric – Mihura David

  33. JSF vs Struts (2/3) • Struts est plus mature • Meilleur facteur de confiance pour JSF (Ex: support IBM pour WebSphere) • Struts contraint le modèle, JSF est plus flexible JSF – Le Merdy Eric – Mihura David

  34. JSF vs Struts (3/3) • La vue est plus générique dans JSF grâce à sa conception des composants • JSF est plus extensible • Balises personnalisés • Composants personnalisés • Conclusion : • JSF a su tirer expérience de Struts JSF – Le Merdy Eric – Mihura David

  35. Attentes respectées (1/2) • JSF est-il une bonne solution ? • Standardisé • Règles de navigation • Mise en œuvre des composants graphiques • Approche RAD JSF – Le Merdy Eric – Mihura David

  36. Attentes respectées (2/2) • MVC • Modèle indépendant • Séparation du comportement et du rendu • Approche page du contrôleur : spécifique aux applications Web JSF – Le Merdy Eric – Mihura David

  37. Conclusion JSF – Le Merdy Eric – Mihura David

  38. Le futur de ce Framework • Intégration de JSF 1.2 à la future spécification J2EE 5.0 • Participation de l’industrie à la spécification • Pas de conversion Struts → JSF • Adoption de JSF pour les nouveaux projets JSF – Le Merdy Eric – Mihura David

More Related