Présentation de JavaServer Faces

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Présentation de JavaServer Faces - Presentation Transcript

    1. JavaServer Faces JS Bournival 18 juillet 2007
    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
    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 fonctionnalités
              • JSR 314 : spécification de JSF 2.0 … à suivre.
    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.
    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
      " "
    6. Architecture vue d’en haut
    7. Niveaux d'abstractions
    8. Les concepts clé
      • Les 8 éléments à maîtriser dans JSF
        • UICOMPONENT
        • RENDERER
        • VALIDATOR
        • BACKING BEANS
        • CONVERTER
        • EVENTS & LISTENERS
        • MESSAGES
        • NAVIGATION
    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
    10. Les concepts clé (2/8)
      • RENDERER
        • renderer par défaut: HTML 4.01
        • direct implementation model VS. delegated implementation model
        • Organisé render kits
    11. Les concepts clé (5/8)
      • CONVERTER
        • prend en charge encoding-decoding
        • converters de base fournis par JSF
          • <f:convertNumber />
          • <f:convertDateTime />
      <h:inputText value=&quot;#{user.balance}&quot;> <f:convertNumber type=&quot;currency&quot; currencyCode=&quot;KZT&quot;/> </h:inputText> <h:inputText value=&quot;#{user.dateOfBirth}&quot;> <f:convertDateTime pattern=&quot;MM/dd/yyyy (hh:mm a)&quot;/> </h:inputText> Petits exemples boboches mais qui disent tout:
    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=&quot;#{user.name}&quot;> <f:validateLength minimum=“13&quot;/> </h:inputText> <h:inputText value=&quot;#{user.creditCard}&quot;> <f:validator validatorId=“com.nurun.CreditCardValidator&quot;/> </h:inputText>
    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
        • Déclaration dans le fichier de configuration de JSF
        • Lien avec composantes d'affaires ( EJB3 , Spring )
        • Niveau de portée Application, Session ou Requête
      <h:commandButton action= “#{myBean.faitKekchose}“ … />
    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
      <h:inputText value=&quot;#{myBean.name}&quot; valueChangeListener=&quot;#{myBean.react}&quot; /> Petit exemple:
    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
      FacesContext context = FacesContet.getCurrentInstance(); context.addMessage(null, new FacesMessage( &quot; blah.&quot;) ; <h:messages style= “color: blue“ /> Dans la vue: Dans la backing bean :
    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
      <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> Exemple dans faces-config.xml:
    17. Le cycle de vie d'une requête
      • 6 phases forment le cycle de vie d’une requête JSF
    18. Le cycle de vie d'une requête (1/6)
      • Restore View
        • Construction ou mise à jour de l'arbre logique de composants
      <input type=&quot;hidden&quot; name=&quot;com.sun.faces.VIEW&quot; value=&quot; H4sIAAAAAAAAAMVaa2wcVxW+u347bmsnKXk1zTYPN2ncfT/zaOvYeayyboLXSYkjcMYzd+2NZ2emM7P2uFGiFNGCqIRAJRVIASrBj/4of0AI1B+8UWlQi4jgByCkCBVFlSgI/pSHoJx757m7d8axHZxVMp5799x7zz3fOd8599qvv486NBVFeLkW1epStMLxWIvW9aoYnVAxLutqndfrKt5Y2Tb60LULkTBqL6FufrYqCiqWdPRg6SI3z8XIgNiwqnKLpaqmHyyhHl7kNO1proZ1tN6UETlpJgYTVqUZEOgkK+majjZ4ZjjBabNjnAJfh6vCs+gKChsKaLeBSJhKOWsYz9/c/uU3ua+0oVARtWvV57ChIITaFtrh2auRwUjR0T4y1LC2BZtUZAnUjs7qNTF6Ah6n6rpS1yewoYNw+1RVyDhD98jqTJS7yBnpi1qFvrjDhqFV1jm9rlnDsuYw+uwADdob9CDPbkuyECipo/QSGpexiHn9iCyLmJNGZjE/Ny0bYKQB10iWGT/htq+T3Z+btq7RzHpiKq7McZDjFgE2XE2vUynKJ7 … == &quot; />
    19. Le cycle de vie d'une requête
      • 6 phases forment le cycle de vie d’une requête JSF
    20. Le cycle de vie d'une requête (2/6)
      • Apply Request Values
        • Insertion des valeurs dans chacun des composants de l'arbre
      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 Myform:mycomponent=bonhomme+carnaval& … HTTP POST request
    21. Le cycle de vie d'une requête
      • 6 phases forment le cycle de vie d’une requête JSF
    22. Le cycle de vie d'une requête (3/6)
      • Process Validations
        • JSF demande à chacun des composants de se convertir et de se valider (validateur externes etc.)
      X
    23. Le cycle de vie d'une requête
      • 6 phases forment le cycle de vie d’une requête JSF
    24. Le cycle de vie d'une requête (4/6)
      • Update Model Values
        • Insertion des valeurs dans le modèle ( backing bean et autres objets du modèle)
    25. Le cycle de vie d'une requête
      • 6 phases forment le cycle de vie d’une requête JSF
    26. Le cycle de vie d'une requête (5/6)
      • 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)
    27. Le cycle de vie d'une requête
      • 6 phases forment le cycle de vie d’une requête JSF
    28. Le cycle de vie d'une requête (6/6)
      • Render Response
        • Affiche la réponse en mettant à contribution le mécanisme de vue utilisé (JSP, Facelets)
    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
    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.
    31. JSF EL (suite …)
      • value-binding
      • method-binding
        • Pour un listener
        • Pour une action
        • Pour un validator
        • Pour un converter
    32. Les composants standards de JSF
    33. Implémentations de la spécification
      • Sun RI
        • 1.2
      • Apache MyFaces
        • 1.1 (1.2 pas encore release)
    34. Librairies de composants
      • Oracle ADF Faces
      • ICEFaces
      • JBoss RichFaces
      • JBoss Ajax4JSF
      • Apache Tomahawk
      • Apache Sandbox
      • Apache Trinidad
      • And many more …
      + +
    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
      + +
    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/)
      • Questions?
      • [email_address]
      • Ext. 2112

    + jsbournivaljsbournival, 3 years ago

    custom

    3632 views, 1 favs, 2 embeds more stats

    Présentation de JavaServer Faces, son architecture more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 3632
      • 3619 on SlideShare
      • 13 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 203
    Most viewed embeds
    • 7 views on http://js.jipiju.com
    • 6 views on http://waw-fouineur.blogspot.com

    more

    All embeds
    • 7 views on http://js.jipiju.com
    • 6 views on http://waw-fouineur.blogspot.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories