JSF 2 Damien Gouyette et François Petitit
Damien GOUYETTE François PETITIT
Intervenant Nom de l'intervenant Damien GOUYETTE Expert technique java / JEE au sein de GENERALI.  Il assure au sein d'une équipe transverse, du support, de la documentation, et participe à la    définition des normes de développement. Damien GOUYETTE est plus particulièrement spécialisé dans le développement d'IHM Blog :  http://www.cestpasdur.com François PETITIT Consultant chez OCTO Technology, François s'intéresse tout particulièrement à l'univers Java/JEE. C'est au cours d'une mission dans une équipe transverse d'aide aux projets Java qu'il a rencontré Damien Gouyette, avec qui il a pu approfondir la technologie JSF.
Objectifs de la présentation À l'issue de cette présentation, vous connaitrez :  Les bases de JSF
Les nouveautés de JSF 2
Sommaire 1 - Introduction
2 - Le framework JSF
3 - Les outils 4 - Conclusion
Introduction Objectifs de JSF :  Fournir un standard JEE, spécifié dans une JSR, pour le développement d'IHM riches
Maximiser la productivité des développeurs  Fournir les fonctionnalités récurrentes et avancées (validations, conversions, Ajax, etc...)
Masquer la complexité
Introduction Historique 1.0 1.1 1.2 2.0 2004 2005 2006 2007 2008 2009 JSR 252 JSR 127 JSR 314 Version initiale Correction de  bugs Améliorations et corrections JEE 6 multiples nouveautés
Exécution dans le navigateur Plug-in requis Exécution côté serveur Les principaux frameworks RIA Java et autres : 1 - Introduction JSF Wicket Spring MVC GWT DOJO Applet JavaFX Flex Silverlight
Sommaire 1 - Introduction
2 - Le framework JSF
3 - Les outils 4 - Conclusion
2 - Le framework JSF 2.1 – JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orienté composants 2.6 - AJAX  2.0 2.7 – Templating de pages  2.0 2.8 – JSP vs Facelet 2.9 -Traitement des ressources
2.1 - JSF2 et JEE  JSF 2 compatible JEE 5, JSF 1.X de base
Fait partie de JEE 6 :
2.1 - JSF 2 et JEE Fait partie du profil « web » de JEE 6 : Servlet 3.0
JavaServer Pages (JSP) 2.2
Expression Language (EL) 2.2
Debugging Support for Other Languages (JSR-45) 1.0
Standard Tag Library for JavaServer Pages (JSTL) 1.2
JavaServer Faces (JSF) 2.0
Common Annotations for Java Platform (JSR-250) 1.1
Enterprise JavaBeans (EJB) 3.1 Lite
Java Transaction API (JTA) 1.1
Java Persistence API (JPA) 2.0
2 - Le framework JSF 2.1 – JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orienté composants 2.6 - AJAX  2.0 2.7 – Templating de pages  2.0 2.8 – JSP vs Facelet 2.9 -Traitement des ressources
MVC 2 et JSF 2 Controller web.xml Faces-config (facultatif) Back office Managed  Beans Vue Client Côté client Côté serveur B.O.
2. Le framework JSF 2.1 – JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orienté composants 2.6 - AJAX  2.0 2.7 – Templating de pages  2.0 2.8 – JSP vs Facelet 2.9 -Traitement des ressources
2.3 - Cycle de vie Le cycle de vie = les étapes côté serveur lors d'une requête : Restauration de la vue Conversions Validations Mises-à-jour des managed beans Invocation du métier & navigation Création de la réponse Requête Réponse
2.3 Conversion JSF fournit : Conversion automatique de la valeur d'un attribut de la requête (chaînes de caractères) en objet Java.
Support des types primitifs, des dates,
Support de convertisseurs personnalisés et configurables.
Configuration de l'affichage. Exemple : affichage de dates <h:outputText value=&quot;#{dateBean.today}&quot;> <f:convertDateTime  dateStyle=&quot;full&quot;  type=&quot;date&quot; /> </h:outputText> ->  Mardi 13 octobre 2008
2.3 - Validation Plusieurs moyens de valider : Dans la vue  avec des balises fournies par JSF <h:inputText value=&quot;#{ contactBean . name }&quot;>   <f:validateLength minimum=&quot;2&quot; maximum=&quot;30&quot; /> </h:inputText>
Avec des validateurs personnalisés implémentant l'interface « javax.faces.validator ». Permet de valider au plus tôt avec des validateurs personnalisés. Exemples : validation d'adresse mail... Dans le managed bean  en ajoutant des messages d'erreur dans le contexte JSF Dans les entités et/ou dans les managed beans en utilisant la JSR-303 ( Hibernate validator ), en utilisant le tag « f:validateBean »
Sommaire : le framework 2.1 – JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orienté composants 2.6 - AJAX  2.0 2.7 – Templating de pages  2.0 2.8 – JSP vs Facelet 2.9 -Traitement des ressources
2.4 - managed Bean Classe java qui contenant la logique de présentation connectée au métier. Scope : Application
Session
View  2.0
Request
2.4 - ManagedBean JSF 2 simplifie la configuration  Avant, déclaration dans le fichier faces-config.xml :  Après, déclaration avec des annotations directement dans le managed bean  :  <managed-bean> <managed-bean-name>bidonBean</managed-bean-name> <managed-bean-class> org.parisjug.jsf.controller.ContactManagedBean </managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> @ManagedBean @RequestScoped public class ContactManagedBean { … }
2.4 - Vues ↔ ManagedBean Lien vues ↔ contrôleurs grâce à l'Expression Language (EL) @ManagedBean   2.0 @RequestScoped   2.0 public class  ContactBean  { // propriétés et accesseurs private String  name ; … //code métier Public String  add (){ …   return «  success  »; } } ... <h:inputText value=&quot;#{ contactBean . name }&quot;>   <f:validateLength minimum=&quot;2&quot;    maximum=&quot;30&quot; /> </h:inputText> … <h:commandButton    action=&quot;#{ contactBean . add }&quot; /> ... ContactBean.java new.xhtml
Sommaire : le framework 2.1 – JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orienté composants 2.6 - AJAX  2.0 2.7 – Templating de pages  2.0 2.8 – JSP vs Facelet 2.9 -Traitement des ressources

Presentation jsf2

  • 1.
    JSF 2 DamienGouyette et François Petitit
  • 2.
  • 3.
    Intervenant Nom del'intervenant Damien GOUYETTE Expert technique java / JEE au sein de GENERALI.  Il assure au sein d'une équipe transverse, du support, de la documentation, et participe à la définition des normes de développement. Damien GOUYETTE est plus particulièrement spécialisé dans le développement d'IHM Blog : http://www.cestpasdur.com François PETITIT Consultant chez OCTO Technology, François s'intéresse tout particulièrement à l'univers Java/JEE. C'est au cours d'une mission dans une équipe transverse d'aide aux projets Java qu'il a rencontré Damien Gouyette, avec qui il a pu approfondir la technologie JSF.
  • 4.
    Objectifs de laprésentation À l'issue de cette présentation, vous connaitrez : Les bases de JSF
  • 5.
  • 6.
    Sommaire 1 -Introduction
  • 7.
    2 - Leframework JSF
  • 8.
    3 - Lesoutils 4 - Conclusion
  • 9.
    Introduction Objectifs deJSF : Fournir un standard JEE, spécifié dans une JSR, pour le développement d'IHM riches
  • 10.
    Maximiser la productivitédes développeurs Fournir les fonctionnalités récurrentes et avancées (validations, conversions, Ajax, etc...)
  • 11.
  • 12.
    Introduction Historique 1.01.1 1.2 2.0 2004 2005 2006 2007 2008 2009 JSR 252 JSR 127 JSR 314 Version initiale Correction de bugs Améliorations et corrections JEE 6 multiples nouveautés
  • 13.
    Exécution dans lenavigateur Plug-in requis Exécution côté serveur Les principaux frameworks RIA Java et autres : 1 - Introduction JSF Wicket Spring MVC GWT DOJO Applet JavaFX Flex Silverlight
  • 14.
    Sommaire 1 -Introduction
  • 15.
    2 - Leframework JSF
  • 16.
    3 - Lesoutils 4 - Conclusion
  • 17.
    2 - Leframework JSF 2.1 – JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orienté composants 2.6 - AJAX 2.0 2.7 – Templating de pages 2.0 2.8 – JSP vs Facelet 2.9 -Traitement des ressources
  • 18.
    2.1 - JSF2et JEE JSF 2 compatible JEE 5, JSF 1.X de base
  • 19.
  • 20.
    2.1 - JSF2 et JEE Fait partie du profil « web » de JEE 6 : Servlet 3.0
  • 21.
  • 22.
  • 23.
    Debugging Support forOther Languages (JSR-45) 1.0
  • 24.
    Standard Tag Libraryfor JavaServer Pages (JSTL) 1.2
  • 25.
  • 26.
    Common Annotations forJava Platform (JSR-250) 1.1
  • 27.
  • 28.
  • 29.
  • 30.
    2 - Leframework JSF 2.1 – JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orienté composants 2.6 - AJAX 2.0 2.7 – Templating de pages 2.0 2.8 – JSP vs Facelet 2.9 -Traitement des ressources
  • 31.
    MVC 2 etJSF 2 Controller web.xml Faces-config (facultatif) Back office Managed Beans Vue Client Côté client Côté serveur B.O.
  • 32.
    2. Le frameworkJSF 2.1 – JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orienté composants 2.6 - AJAX 2.0 2.7 – Templating de pages 2.0 2.8 – JSP vs Facelet 2.9 -Traitement des ressources
  • 33.
    2.3 - Cyclede vie Le cycle de vie = les étapes côté serveur lors d'une requête : Restauration de la vue Conversions Validations Mises-à-jour des managed beans Invocation du métier & navigation Création de la réponse Requête Réponse
  • 34.
    2.3 Conversion JSFfournit : Conversion automatique de la valeur d'un attribut de la requête (chaînes de caractères) en objet Java.
  • 35.
    Support des typesprimitifs, des dates,
  • 36.
    Support de convertisseurspersonnalisés et configurables.
  • 37.
    Configuration de l'affichage.Exemple : affichage de dates <h:outputText value=&quot;#{dateBean.today}&quot;> <f:convertDateTime dateStyle=&quot;full&quot; type=&quot;date&quot; /> </h:outputText> -> Mardi 13 octobre 2008
  • 38.
    2.3 - ValidationPlusieurs moyens de valider : Dans la vue avec des balises fournies par JSF <h:inputText value=&quot;#{ contactBean . name }&quot;> <f:validateLength minimum=&quot;2&quot; maximum=&quot;30&quot; /> </h:inputText>
  • 39.
    Avec des validateurspersonnalisés implémentant l'interface « javax.faces.validator ». Permet de valider au plus tôt avec des validateurs personnalisés. Exemples : validation d'adresse mail... Dans le managed bean en ajoutant des messages d'erreur dans le contexte JSF Dans les entités et/ou dans les managed beans en utilisant la JSR-303 ( Hibernate validator ), en utilisant le tag « f:validateBean »
  • 40.
    Sommaire : leframework 2.1 – JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orienté composants 2.6 - AJAX 2.0 2.7 – Templating de pages 2.0 2.8 – JSP vs Facelet 2.9 -Traitement des ressources
  • 41.
    2.4 - managedBean Classe java qui contenant la logique de présentation connectée au métier. Scope : Application
  • 42.
  • 43.
  • 44.
  • 45.
    2.4 - ManagedBeanJSF 2 simplifie la configuration Avant, déclaration dans le fichier faces-config.xml : Après, déclaration avec des annotations directement dans le managed bean : <managed-bean> <managed-bean-name>bidonBean</managed-bean-name> <managed-bean-class> org.parisjug.jsf.controller.ContactManagedBean </managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean> @ManagedBean @RequestScoped public class ContactManagedBean { … }
  • 46.
    2.4 - Vues↔ ManagedBean Lien vues ↔ contrôleurs grâce à l'Expression Language (EL) @ManagedBean 2.0 @RequestScoped 2.0 public class ContactBean { // propriétés et accesseurs private String name ; … //code métier Public String add (){ … return «  success  »; } } ... <h:inputText value=&quot;#{ contactBean . name }&quot;> <f:validateLength minimum=&quot;2&quot; maximum=&quot;30&quot; /> </h:inputText> … <h:commandButton action=&quot;#{ contactBean . add }&quot; /> ... ContactBean.java new.xhtml
  • 47.
    Sommaire : leframework 2.1 – JSF & JEE 2.2 - Pattern de JSF 2.3 - Cycle de vie 2.4 - Les managed beans 2.5 - Orienté composants 2.6 - AJAX 2.0 2.7 – Templating de pages 2.0 2.8 – JSP vs Facelet 2.9 -Traitement des ressources

Notes de l'éditeur

  • #4 Je crois qu&apos;il est plus simple qu&apos;on se présente chacun ;) Damien se présente François se présente
  • #5 Phrases pas très jolies Un peu ambitieux de dire savoir comment développer en JSF2 Qui parle? Damien
  • #6 Sympa le petit effet de gris, mais pas très visible Qui parle? Damien
  • #7 JSF 1.0 - 1.1 : JSR 127, mars - mai 2004 JSF 1.2 : JSR 252, JEE 5, mai 2006 JSF 2.0 : JSR 314, JEE 6, mai 2009 Qui parle? François
  • #8 TODO : faire une popup pour chaque version qui mette ce qu&apos;elle apportait Qui parle? François JSF 1.0 : servlet 2.3 et JSP 1.2, Java 1.3 JSF 1.1 : bug fix et performance improvement JSF 1.2 : servlet 2.5 et JSP 2.1 Java 5, plus de render kits (implem de Sun compatible Facelets alors que la 1.1 ne l&apos;était pas, MyFaces 1.1 était déjà compatible Facelets par-contre)
  • #9 Qui parle? François
  • #10 Qui parle? François
  • #11 Qui parle? Damien
  • #12 Diapo intéressante, on voit mal JSF par contre Qui parle? Damien
  • #13 Qui parle? Francois
  • #14 Qui parle? Damien
  • #15 Qui parle? François
  • #16 Qui parle? François
  • #17 Qui parle? François
  • #18 Qui parle? Damien
  • #19 Qui parle? François
  • #20 Qui parle? François
  • #22 Qui parle? François
  • #23 Qui parle? François
  • #24 Qui parle? François
  • #25 Qui parle? Damien
  • #26 Qui parle? François
  • #27 Qui parle? Damien
  • #28 Qui parle? Damien
  • #29 Qui parle? François
  • #30 Qui parle? François
  • #31 QQQ la capture n&apos;est pas bonne!!! Qui parle? Damien
  • #32 Qui parle? Damien
  • #33 Qui parle? François
  • #34 QQQ faire des flèches! Qui parle? François
  • #35 Qui parle? Damien Euh... pas très clair pour moi...?
  • #37 Qui parle? Damien
  • #38 Qui parle? François et Damien (1 sur 2)?
  • #39 Qui parle? François
  • #40 Vert : supporte déjà JSF 2 d&apos;office Orange : peut faire du JSF 2 mais pas supporté d&apos;office Rouge : ne fait pas encore de JSF 2 Qui parle? François
  • #41 Qui parle? François
  • #42 Qui parle? Damien
  • #43 TODO : rendre le schema plus sympa... Qui parle? François
  • #44 Qui parle? Damien
  • #45 Ouf! :)