You are on page 1of 50

Normandy JUG

Prsentation de JSF

Intervenant
Gontran TOMBETTE
Ingnieur dtude chez Sopra Group depuis 9 ans. Dans le monde Java depuis 5 ans. Architecte JEE depuis 3 ans. gtombette@sopragroup.com

Lobjectif
Cest quoi JSF ?

Comment a marche ?

Comment on sen sert ?

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement.


Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement.


Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

Quest-ce que JSF ?


JSF : Java Server Faces
Framework de prsentation pour les applications Web en Java :
librairie de composants graphiques, fonctionnalits gravitant autour de ces composants,

Dfinie au sein dune Java Specification Request (JSR) mise par la Java Community Process (JCP).

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement.


Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

Historique
JSR-252
Versions 1.2
JEE 5 Ed Burns Roger Kitain

Cest parti, on simplifie la production dIHM

JSR-127
Versions 1.0 et 1.1
J2EE 1.4 Ed Burns Craig McClanahan Roger Kitain

JSR-314
Versions 2.0 JEE 5 Ed Burns Roger Kitain

Les principaux concepteurs


Ed Burns de Sun Microsystems Inc : NCSA Mosaic (un des 1er navigateur Web). Mozilla (navigateur Web). Tomcat (serveur dapplication).

Craig McClanahan de Sun Microsystems Inc : Fondateur de Struts. (Framework de prsentation). Leader sur Tomcat. (serveur dapplication). Roger Kitain de Sun Microsystems Inc : Spcialiste Servlet. Expert des technologies autour de JSP.

Les implmentations
Les implmentations doivent respecter les spcifications dcrites par les JSR-314. Sun Mojarra
https://javaserverfaces.dev.java.net/

Apache MyFaces
http://myfaces.apache.org/

Oracle ADF Faces


http://www.oracle.com/technology/products/adf/adffaces/index.html

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement.


Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

Quoi de plus que les autres ?


Le concept novateur :
Modle vnementiel. Approche composant .

Mais aussi :
respect du concept M.V.C. (Model/View/Controller), permet de gnrer autre chose que du HTML (XML, WML, XUL, .), propose des librairies de composants graphiques facilement surchargeables , permet de crer ses propres composants, Ajax ready

Quoi de plus que les autres ? suite


Nouvelle vision
Reprsentation de la page sous forme darbre des composants, et accessible via le contexte de lapplication.
ViewRoot

MaPage
Form

Identifiant : Mot de passe :

OutputText

InputText

Soumettre

OutputText

InputText

CommandButton

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement.


Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

Un ptit exemple !
Le fameux Hello Normandy JUG

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement. - IHM
Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

IHM
Plusieurs technologies possibles pour lcriture des pages :
JSP XHTML

Ensemble de balises JSF constituant la page :


Composants graphiques, Composants de conversion, Composants de validation,

Templating (modlisation) de pages avec Facelets


Inclus dans JSF

IHM : Template de page - Facelets


Facelets est un framework de composition de pages ou de composants.
Modle (template)

En-tte En-tte

Corps
Pied de page Corps

Pied de page

IHM : Template de page (suite)


Inclusion de page

Insertion de page

Inclusion de page

IHM : Exemple de page


Dclaration des librairies

Template de page (Facelets)


Ressources

Composants JSF

Lien JavaBean

IHM : Les composants graphiques

IHM : Composants additionnels


Il existe des librairies supplmentaires proposant des composants supplmentaires.
Complments des composants de base, Menu Onglet Treeview Calendrier

MyFaces Tomahawk ICEfaces JBoss RichFaces

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement. Managed Bean
Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

ManagedBean
Cest un JavaBean gr par JSF. Permet de faire le lien entre lIHM et le code mtier de lapplication.
Doit contenir des accesseurs et des mutateurs pour champs de lIHM.

Dfinition au sein du fichier faces-config.xml ou par le biais dannotations.

Dessine moi un ManagedBean


Annotations de paramtrage Attribut relatif au champ de saisie de lIHM

Accesseur du champ de saisie

Mutateur du champ de saisie

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement. Configuration
Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

La configuration : faces-config.xml

Fichier de ressources par dfaut I18N

Navigation

La configuration : web.xml

Nom de lapplication Extension des pages

Servlet utilise

Mapping de la servlet

Page daccueil

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement. Synthse
Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

Respect du concept M.V.C.


Controler Controler FacesServlet Requte issue du client faces-config.xml

Rponse retourne au client Model Model

View View

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement. Synthse
Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

Les convertisseurs
Permet la conversion des donnes :
IHM vers ManagedBean, ManagedBean vers IHM.

Exemples de convertisseurs :
Conversion de date, Conversion de nombre.

Il est facile de crer son propre convertisseur.

Les convertisseurs
MaPage PersonneBean

Nom : Prnom : Date de naissance :

Enregistrer

Les validateurs
Vrifier la validit des donnes converties. Applicable sur lensemble des composants de saisies. Exemples de validateurs :
valider la prsence de saisie, valider que la saisie est conforme une plage de valeurs, valider le format de saisie (expression rgulire) valider la longueur de la saisie,

Les validateurs
MaPage MaPage

Identifiant : Mot de passe :

Identifiant :

Erreur
Mot de passe : Soumettre Soumettre

Le rendu
Les composants JSF peuvent tre transcrits en HTML, XML, WML en fonction de la cible. Ceci est possible par le biais de Renderer . Les Renderers sont des classes Java :
rcuprant les attributs des composants, transcrivant le composant en fonction du format souhait.

Le rendu
maPage.xhtml

HTMLInputTextRenderer.java

maPage.html

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement. Synthse
Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

Le cycle de vie
Le cycle de vie correspond aux diffrentes tapes entre la requte du client et la rponse retourne.

Le cycle de vie
Reconstruction de larborescence des composants Requte issue du client Restore View Apply Requests Process Validations Extraction des valeurs de la requte Validation et conversion des donnes

Rponse retourne au client

Render Response

Invoke Application

Update Model Values Mise jour du modle aprs validation et/ou conversion

Gnration de la rponse

Appel des mthodes pour le traitement de la page

Erreur de conversion

Erreur de conversion et/ou de validation

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement. Synthse
Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

Cration de composants.
Quest-ce que cest ?
Assemblage de plusieurs composants de base. Cration de ses propres composants.

A quoi a sert ?
Faciliter et uniformiser de dveloppement dIHM. Rpondre aux besoins de lutilisateur final.

We can do it !
Dans la plupart des cas, pas besoin de connatre un langage obscur pour confectionner son propre composant.
Java, Xhtml + Facelets, HTML, Javascript, JSTL si ncessaire.

Cest moi qui lai fait !


Identifiant :

Composants de base

Mon composant

Cest moi qui lai fait ! (suite)

Attributs

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement. Synthse
Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

Et AJAX ?
Les implmentations JSF2 supportent nativement AJAX. Les librairies supplmentaires proposent des complments :
MyFaces ICEfaces JBoss Richfaces

Et Ajax : lexemple.
Lien ManagedBean Champ de saisie Balise AJAX

Lien ManagedBean

Sommaire
1 2 3 4 5 6 7 8 9 10 Quest-ce que JSF ?

Historique. Quoi de plus que les autres ? Exemple. Dtail du fonctionnement. Synthse
Convertisseur - Validateur - Renderer Le cycle de vie. Cration de composants. AJAX. Le dveloppement.

Et je dveloppe avec quoi ?


Avec les IDE bien connus et quelques plugins :
Eclipse NetBeans Oracle JDeveloper

Le problme :
Les plugins sont prvus pour fonctionner avec une version bien prcise de JSF.
Le paramtrage est un peu fastidieux.

Questions / Rponses

You might also like