Quick Upload

Loading...
Flash Player 9 (or above) is needed to view slideshows. We have detected that you do not have it on your computer.To install it, go here
Post to Twitter Post to Twitter
Share on Facebook
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

Présentation de JavaServer Faces

from jsbournival, 2 years ago Add as contact

2444 views | 0 comments | 0 favorites | 2 embeds (Stats)

Desc: Présentation de JavaServer Faces, son architecture, ses caractéristiques, et ses concepts clé.

Embed customize close
 

Categories

Technology

Groups/Events

More Info

This slideshow is Public

Views: 2444 Comments: 0 Favorites: 0 Downloads: 147

View Details: 2431 on Slideshare 13 from embeds
Most viewed embeds (Top 5): More
Flagged as inappropriate Flag as inappropriate

Flag as inappropriate

Select your reason for flagging this slideshow as inappropriate.

If needed, use the feedback form to let us know more details.

Slideshow Transcript

  1. Slide 1: JavaServer Faces JS Bournival 18 juillet 2007
  2. Slide 2: Agenda  Introduction  Historique  Architecture  Concepts clés  Cycle de vie d’une requête  Expression language  Traction dans l’industrie  Références  Questions Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 2 2006
  3. Slide 3: JavaServer Faces?  JSF est la spécification d’un cadre d’application pour la couche de présentation d’une application web. JSF fait partie, aussi de la spécification globale de JEE 5. JSR 127: spécification initiale résultant en l’implémentation de JavaServer Faces 1.1 JSR 252: spécification de JSF 1.2, corrigeant plusieurs problèmes, et ajoutant certaines nouvelles Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page fonctionnalités 2006 3
  4. Slide 4: Buts recherchés et Historique  RAD  Rapid Application Development  RIA  Rich Internet Application  Permettre, pour les développeurs, de facilement lier, dans un contexte stateful, des composants backend, avec des évènements émanant de l’interface-utilisateur. Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 4 2006
  5. Slide 5: Buts recherchés et Historique \" … it is also aimed directly at solving many of the common problems encountered when writing applications for HTML clients that communicate via HTTP […] These applications are typically form- based, and are comprised of one or more HTML pages with which the \" user interacts to complete a task or set of tasks. - Craig McClanahan, Ed Burns, & Roger Kitain Java Specification Request (JSR) 127 Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 5 2006
  6. Slide 6: Architecture vue d’en haut Servlet container JSF framework Base de données Markup generation Stateful UI component model Backing beans Client-side event model EJB Conversion & validation Model objects (logique applicative ) Service web Navigation Synchronisation avec les backing beans Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 6 2006
  7. Slide 7: Niveaux d'abstractions Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 7 2006
  8. Slide 8: Les concepts clé  Les 8 éléments à maîtriser dans JSF  UICOMPONENT  RENDERER  VALIDATOR  BACKING BEANS  CONVERTER  EVENTS & LISTENERS  MESSAGES  NAVIGATION Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 8 2006
  9. Slide 9: Les concepts clé (1/8) UICOMPONENT  Abstraction et encapsulation de fonctionnalités pour un composant possédant un état, et une représentation graphique ViewRoot VIEW STATE ... Form Entrer le texte Option 1 submit RENDERED VIEW InputText Check box OutputText Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 9 2006
  10. Slide 10: Les concepts clé (2/8) RENDERER  renderer par défaut: HTML 4.01  direct implementation model VS. delegated implementation model  Organisé render kits HtmlCommandButton Soumet-moi! Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 10 2006
  11. Slide 11: Les concepts clé (5/8)  CONVERTER  prend en charge encoding-decoding  converters de base fournis par JSF <f:convertNumber /> <f:convertDateTime /> Petits exemples boboches mais qui disent tout: <h:inputText value=\"#{user.balance}\"> <f:convertNumber type=\"currency\" currencyCode=\"KZT\"/> </h:inputText> <h:inputText value=\"#{user.dateOfBirth}\"> <f:convertDateTime pattern=\"MM/dd/yyyy (hh:mm a)\"/> </h:inputText> Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 11 2006
  12. Slide 12: Les concepts clé (3/8)  VALIDATOR  directement dans l'implémentation du composant  via une méthode d'une backing bean  via une classe validateur générique <h:inputText value=\"#{user.name}\"> <f:validateLength minimum=“13\"/> </h:inputText> <h:inputText value=\"#{user.creditCard}\"> <f:validator validatorId=“com.nurun.CreditCardValidator\"/> </h:inputText> Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 12 2006
  13. Slide 13: Les concepts clé (4/8) BACKING BEANS  Lier la valeur d'un composant à un attribut d'une backing bean Attacher un composant à un  attribut d'une backing bean public String faitKekchose () { if (true ) { Déclaration dans le fichier de  return ‘success’ ; } configuration de JSF else { // nothing ... } Lien avec composantes  } Entrer le texte d'affaires (EJB3, Spring) Option 1 Niveau de portée Application,  submit Session ou Requête <h:commandButton action=“#{myBean.faitKekchose}“ … /> Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 13 2006
  14. Slide 14: Les concepts clé (6/8)  EVENTS & LISTENERS  Types • value change events • action events • data model events • phase events  Les listeners sont appelés lors de la soumission  Peut se présenter sous la forme d’une classe, ou simplement d’une méthode d’une backing bean Petit exemple: <h:inputText value=\"#{myBean.name}\" valueChangeListener=\"#{myBean.react}\" /> Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 14 2006
  15. Slide 15: Les concepts clé (7/8)  MESSAGES  Erreurs d'application, ou de validation  Composants pouvant ajouter des messages  Rien de très magique ici, se compare aisément aux tags du style <html:errors/> de Struts Dans la backing bean: FacesContext context = FacesContet.getCurrentInstance(); context.addMessage(null, new FacesMessage(\"blah.\"); Dans la vue: <h:messages style=“color: blue“ /> Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 15 2006
  16. Slide 16: Les concepts clé (8/8)  NAVIGATION  Déclaration des règles de navigation dans le fichier de configuration de JSF, faces-config.xml  Basé sur des outcome sous la forme de chaîne de caractères  Rien de nouveau ici pour les habitués de Struts Exemple dans faces-config.xml: <navigation-rule> <from-view-id>/welcome.jsp</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/response.jsp</to-view-id> </navigation-case> </navigation-rule> Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 16 2006
  17. Slide 17: Le cycle de vie d'une requête 6 phases forment le cycle de vie d’une requête JSF Restore View Soumettre Un clic est né Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 17 2006
  18. Slide 18: Le cycle de vie d'une requête (1/6) Restore View Restore View  Construction ou mise à jour de l'arbre logique de composants ViewRoot <input type=\"hidden\" name=\"com.sun.faces.VIEW\" value=\"H4sIAAAAAAAAAMVaa2wcVxW+u347b Form msnKXk1zTYPN2ncfT/zaOvYeayyboLXSYkjcMY zd+2NZ2emM7P2uFGiFNGCqIRAJRVIASrBj/4of0 AI1B+8UWlQi4jgByCkCBVFlSgI/pSHoJx757m7d 8axHZxVMp5799x7zz3fOd8599qvv486NBVFeLk W1epStMLxWIvW9aoYnVAxLutqndfrKt5Y2Tb60 LULkTBqL6FufrYqCiqWdPRg6SI3z8XIgNiwqnK LpaqmHyyhHl7kNO1proZ1tN6UETlpJgYTVqUZE OgkK+majjZ4ZjjBabNjnAJfh6vCs+gKChsKaLeBS JhKOWsYz9/c/uU3ua+0oVARtWvV57ChIITaFtrh2 auRwUjR0T4y1LC2BZtUZAnUjs7qNTF6Ah6n6rp S1yewoYNw+1RVyDhD98jqTJS7yBnpi1qFvrjDhq FV1jm9rlnDsuYw+uwADdob9CDPbkuyECipo/QS GpexiHn9iCyLmJNGZjE/Ny0bYKQB10iWGT/htq InputText Check box OutputText +T3Z+btq7RzHpiKq7McZDjFgE2XE2vUynKJ7 … ==\" /> Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 18 2006
  19. Slide 19: Le cycle de vie d'une requête 6 phases forment le cycle de vie d’une requête JSF Restore View Apply Request Values Soumettre Un clic est né Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 19 2006
  20. Slide 20: Le cycle de vie d'une requête (2/6) Apply Request Values Apply Request Values  Insertion des valeurs dans chacun des composants de l'arbre HTTP POST request ViewRoot POST /path/view.faces HTTP/1.0 From: someone@somewhere.com User-Agent: HTTPTool/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 32 Form … Myform:mycomponent=bonhomme+carnaval& InputText Check box OutputText Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 20 2006
  21. Slide 21: Le cycle de vie d'une requête 6 phases forment le cycle de vie d’une requête JSF Restore View Apply Request Values Process Validations Soumettre Un clic est né Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 21 2006
  22. Slide 22: Le cycle de vie d'une requête (3/6) Process Validations Process Validations  JSF demande à chacun des composants de se convertir et de se valider (validateur externes etc.) java.util.Date \"tue jan 3 2007 11:25:21.234 EST\" X Render Response Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 22 2006
  23. Slide 23: Le cycle de vie d'une requête 6 phases forment le cycle de vie d’une requête JSF Restore View Apply Request Values Process Validations Soumettre Un clic est né Update Model Values Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 23 2006
  24. Slide 24: Le cycle de vie d'une requête (4/6) Update Model Values Update Model Values  Insertion des valeurs dans le modèle (backing bean et autres objets du modèle) ViewRoot Backing Bean Attribute 1 Attribute 2 Form InputText Check box OutputText Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 24 2006
  25. Slide 25: Le cycle de vie d'une requête 6 phases forment le cycle de vie d’une requête JSF Restore View Apply Request Values Process Validations Soumettre Un clic est né Invoke Application Update Model Values Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 25 2006
  26. Slide 26: Le cycle de vie d'une requête (5/6) Invoke Application Invoke Application  Exécute la méthode action (ou autre listener enregistré) appelé par l'évènement par défaut déclenché par les composants de type «command» (lien ou bouton) Backing Bean actionMethod listeningMethod Hit me boy! Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 26 2006
  27. Slide 27: Le cycle de vie d'une requête 6 phases forment le cycle de vie d’une requête JSF Restore View Apply Request Values Process Validations Soumettre Un clic est né Render Response Invoke Application Update Model Values Page HTML rendue Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 27 2006
  28. Slide 28: Le cycle de vie d'une requête (6/6) Render Response Render Response  Affiche la réponse en mettant à contribution le mécanisme de vue utilisé (JSP, Facelets) ViewRoot Backing Bean Attribute 1 Attribute 2 Form Page HTML rendue InputText Check box OutputText Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 28 2006
  29. Slide 29: JSF EL  EL == Expression Language  Sont sous la forme #{…}  Permet de dynamiquement manipuler les attributs des backing beans ou objets du domaine, ou encore d'exécuter des opérations simples sans polluer une vue avec des scriplets qui s'intègre mal.  Similaires à JSP/JSTL ${…}  Ces expressions sont évalués à l'exécution de la page Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 29 2006
  30. Slide 30: JSF EL (suite …) On peut utiliser le langage d'expression de JSF pour:  Insérer des composants dans des objets;  Exposer les propriétés d'une JavaBean, d'une Collection, ou de types simples;  Référencer des méthodes (action, listener, validation, …);  Exécuter des opérations logiques ou mathématiques;  En plus, sont supportées les propriétés imbriquées. Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 30 2006
  31. Slide 31: JSF EL (suite …)  value-binding  method-binding  Pour un listener  Pour une action  Pour un validator  Pour un converter Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 31 2006
  32. Slide 32: Les composants standards de JSF Je me déroule Option 1 Option 1 Entrer le texte Option 2 <HIDDEN /> Entrer le texte Entrer plus de texte Clique -moi! Item 1 Je suis ici pour que tu me cliques ! Item 2 Option 1 Item 3 Option 2 Option 3 ********** Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 32 2006
  33. Slide 33: Implémentations de la spécification  Sun RI  1.2  Apache MyFaces  1.1 (1.2 pas encore release) Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 33 2006
  34. Slide 34: Librairies de composants  Oracle ADF Faces  ICEFaces  JBoss RichFaces  JBoss Ajax4JSF  Apache Tomahawk + +  Apache Sandbox  Apache Trinidad  And many more … Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 34 2006
  35. Slide 35: Outils  Eclipse JSF Tools (WTP 2.0)  IBM RAD  NetBeans  Sun Java Studio Creator  RHDS / Exadel + +  MyEclipse IDE  Oracle JDeveloper  BEA Workshop for JSF Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 35 2006
  36. Slide 36: Références  Livres  JavaServer Faces in Action  Core JSF  Sites Webs  JCP.org JSR 127  JCP.org JSR 252  jsfcentral.com  Blogs  Kito Mann (http://weblogs.java.net/blog/kito75/)  Ed Burns (http://weblogs.java.net/blog/edburns/)  Craig Mclanahan (http://blogs.sun.com/craigmcc/) Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 36 2006
  37. Slide 37: Questions? jean-sebastien.bournival@nurun.com Ext. 2112 Communication interactive et nouvelles technologies / Interactive Communications through New Technologies Page 37 2006