Está en la página 1de 142

Alphorm.

com-Support de la 25/01/2017
Formation Java Server Faces

Formation
JSF (Java Server Faces)

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Prsentation du formateur

Quest-ce que JSF?

Le plan de la formation

Les rfrences bibliographiques

Autres liens utiles

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 1
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Prsentation du formateur
Fabien Brissonneau

Email : fabien.brissonneau@gmail.com

Consultant Concepteur et Formateur

Missions darchitecture, de conception , de ralisation logicielles

Fondateur de eiXa6

Actuellement en mission sur un projet de gestion

Mes rfrences :
Mon profil LinkedIn : http://fr.linkedin.com/pub/fabien-brissonneau/65/902/92a/

Formation Java Server Faces alphorm.com

Quest-ce que JSF


Un ensemble de bibliothques Java

Utilises dans une application JEE

Pour la couche de prsentation

Permet de faire le lien entre HTML et la logique

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 2
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Le plan de la formation
Chapitre 1 : Lapplication Web

Chapitre 2 : La technologie JSF

Chapitre 3 : Les facelets

Chapitre 4 : Expression Language

Chapitre 5 : JSF dans les pages Web

Chapitre 6 : Converters, Listeners et Validators

Chapitre 7 : Les beans manags

Chapitre 8 : Ajax et JSF

Chapitre 9 : Configurer lapplication JSF

Formation Java Server Faces alphorm.com

Les rfrences bibliographiques


Java EE 7 The Big Picture, Oracle

Java EE Guide de dveloppement Web en Java

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 3
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Il ny a plus qu

Formation Java Server Faces alphorm.com

Lapplication Web
Architecture

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 4
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Les parties de lapplication

Les outils de dveloppement

Un servlet

Un EJB

Une entit

Formation Java Server Faces alphorm.com

Les parties de lapplication


Une application complte JEE possde les parties suivantes

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 5
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les outils de dveloppement


Netbeans 8.1 JEE

Le tlchargement est li
Glassfish, implmentation de rfrence pour les serveurs JEE
Tomcat, implmentation de rfrence pour la partie Web

Maven comme environnement de construction en lot


Rsoud les dpendances et tlcharge les bibliothques ncessaires

Formation Java Server Faces alphorm.com

Un servlet
Une classe hritant de HttpServlet

Traite les rponses HTTP

Contient des rfrences aux EJB

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 6
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Un EJB
Tout simplement un POJO, qui soccupe de traitement logiciel

Rfrence la partie base de donnes

Implmente la logique applicative

Formation Java Server Faces alphorm.com

Une entit
Une classe annote

Dclare une cl

Peut tre accompagne des instructions de base de donne

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 7
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Les parties de lapplication

Les outils de dveloppement

Un servlet

Un EJB

Une entit

Formation Java Server Faces alphorm.com

Lapplication Web
Packaging et
dploiement

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 8
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Fichiers war

Fichiers jar

Fichiers ear

Formation Java Server Faces alphorm.com

Fichiers war
Le dploiement dune application Web est dcrit par un fichier

Sorte de fichier ZIP

Structure prdfinie
La racine contient les fichiers textes, HTML, JSP, JSF
Un rpertoire WEB-INF qui contient les servlets et les classes Java

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 9
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Fichiers JAR
La partie modle est stocke dans un fichier dextension .jar

Structure prdfinie similaire

Le rpertoire META-INF contient des infos sur la persistence


Le fichier persistence.xml

Formation Java Server Faces alphorm.com

Fichiers EAR
Le fichier en extension ear regroupe les deux prcdents

Structure :
/META-INF
/MANIFEST.MF
/<fichier web>.war
/<fichier ejb>.jar

Ce fichier dcrit donc le dploiement sur un serveur JEE

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 10
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Fichiers war

Fichiers jar

Fichiers ear

Formation Java Server Faces alphorm.com

Lapplication Web
LAPI Servlet

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 11
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Ce que fait un Servlet

Comment crer un Servlet

Exemple dapplication

La classe HttpServlet

La classe ServletContext

La classe HttpSession

La classe RequestDispatcher

Formation Java Server Faces alphorm.com

Ce que fait un Servlet


Un servlet est excut dans le conteneur Web

Doit examiner lentte de requte pour dterminer le type de contenu


attendu par le client
Rcuprer les informations retourner

Positionner les informations dentte de retour

Ecrire en retour les donnes attendues

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 12
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Comment crer un Servlet


Driver la classe javax.servlet.http.HttpServlet

Implmenter les mthodes correspondant au protocole HTTP


GET,POST,HEAD,PUT,TRACE,OPTIONS, et la mthode service

Utiliser les classes de requte et de rponse


La classe javax.servlet.http.HttpServletRequest
La classe javax.servlet.http.HttpServletResponse

Formation Java Server Faces alphorm.com

Exemple dapplication
Une mthode doGet dun Servlet pour rcuprer des photos

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 13
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

La classe HttpServlet
Dans le package javax.servlet.http

Classe mre des servlets, multiples instances, thread-safe

Suit un cycle de vie spcifique :


Instancie avant toute requte HTTP
Mthode init(ServletConfig ) appele : pour placer toute activit longue et
ncessaire aux traitements des requtes (ouverture de connexion)
Mthode doXXX, en fonction de la mthode HTTP
Mthode destroy() appele : nettoyage des ressources couteuses (fermeture
de connexion)
La mme instance ne sera plus rutilise
Formation Java Server Faces alphorm.com

La classe ServletContext
Dans le package javax.servlet

Chaque application Web a une unique instance de cette classe

Permet un servlet dobtenir de linformation sur lenvironnement


Version de lAPI Servlet supporte, chemin daccs lapplication,
Propose une map dattributs lis lapplication

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 14
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

La classe HttpSession
Dans le package javax.servlet.http

Reprsente une interaction avec un client dans une application

Une instance unique par client, donc une map par client

Les sessions sont maintenues par le conteneur, par cookie ou en r-


crivant chaque lien avec un id de session

Formation Java Server Faces alphorm.com

La classe RequestDispatcher
Dans le package javax.servlet

Permet de grer les forward et les include

Le forward permet de demander la ressource dcrire la rponse


la place du servlet courant
Le include permet de demander la ressource de complter la
rponse que le servlet courant commencer crire
Obtenu partir du contexte

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 15
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Ce que fait un Servlet

Comment crer un Servlet

Exemple dapplication

La classe HttpServlet

La classe ServletContext

La classe HttpSession

La classe RequestDispatcher

Formation Java Server Faces alphorm.com

Lapplication Web
Le mapping des
Servlets

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 16
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Le dploiement des informations

Les chemins daccs

Lannotation @WebServlet

Ordre des recherches

Formation Java Server Faces alphorm.com

Le dploiement des informations


A partir de lapplication Web (ou du fichier .war)

Les ressources Web : la racine /


Fichiers index.html, login.jsp,

Les classes Java dans /WEB-INF/classes


Fichiers Voiture.class,

Les bibliothques dans /WEB-INF/lib


Fichiers utilitaires.jar,

Informations de dploiement /WEB-INF/Web.xml

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 17
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les chemins daccs


Une technique simple est daffecter une URI chaque Servlet,
relativement la racine de lapplication

Une URL peut tre


Relative : /catalogue/album
Relative avec caractre gnrique : <uri>/*
Une extension de fichier : *.jsp

Les rglages peuvent se faire avec @WebServlet


Package javax.servlet.annotation

Formation Java Server Faces alphorm.com

Lannotation @WebServlet
Paramtre asyncSupported (boolean)

Paramtre description (String)

Paramtre displayName (String)

Paramtres initParam (WebInitParam[])

Paramtres largeIcon et smallIcon (String : nom de limage)

Paramtre loadOnStartup (int : numro dordre dans linstanciation)

Paramtre name (String : nom logique, utiliser dans RequestDispatcher)

Paramtre urlPatterns et value (String[] : mapping du servlet)

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 18
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ordre des recherches


Si une correspondance exacte existe, elle est prise

Sil y a une correspondance relative avec caractre gnrique


Si plusieurs, priorit au plus long motif

Enfin recherche des extensions de fichiers

Formation Java Server Faces alphorm.com

Ce quon a couvert
Le dploiement des informations

Les chemins daccs

Lannotation @WebServlet

Ordre des recherches

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 19
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Lapplication Web
Les pages JSP

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Larchitecture JSP

Exemple de JSP

La syntaxe des JSP

Les directives JSP

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 20
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Larchitecture JSP
Une page JSP est une page HTML dans laquelle apparaissent des balises
introduisant du Java
L o le Servlet tait du Java retournant du HTML

La page JSP est traduite runtime en un Servlet par le conteneur

Le Servlet est ensuite compil runtime

La pages JSP accde donc au mme environnement que le Servlet

Formation Java Server Faces alphorm.com

Exemple de JSP
Une page dextension .jsp par dfaut, la racine de lapplication

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 21
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

La syntaxe des JSP


Les scriplets sont les zones encadres par <% et %>

Il y a deux types de scriplets


<%= expression java %> : lexpression est value, intgre la sortie
<% expression java %> : une collection dexpressions, pas de sortie explicite

La sortie prconfigure, rfrence de type javax.servlet.jdp.JspWriter


Sous type de java.io.Writer

Le fichier horloge.jsp correspond lURL


http://<serveur:port>/<application>/horloge.jsp

La correspondance peut tre modifie

Formation Java Server Faces alphorm.com

Les directives JSP


Les directives JSP paramtrent globalement la page

Forme : <%@ nomdedirective att1=valeur att2=valeur %>

Directive page : les proprits gnrales de la page

Directive include : permet dinclure le contenu dun autre fichier,


comme un entte
Directive taglib : dclarer une bibliothque de balises

Les directives peuvent apparatre nimporte o dans la page

Une directive peut apparatre plusieurs fois

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 22
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Directive page pour les sorties JSP


contentType (text/html): dclaration du type MIME que la page produit

pageEncoding : dclaration de lencodage des caractres

Peuvent tre dclars en une seule directive

Formation Java Server Faces alphorm.com

Directive page pour les langages utiliss


language (java): Spcifier le langage utilis (vraiment utile ?)

isELIgnored (false): Ne pas utiliser Expression Language

import : Importer des classes Java

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 23
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Directive page pour le runtime


autoFlush (true): vidage du buffer automatique ou non

buffer (dp. impl.): spcifie la taille minimum du tampon

isThreadSafe (true): spcifie si la page JSP peut grer plusieurs threads


en mme temps

Formation Java Server Faces alphorm.com

Directive page pour les erreurs


isErrorPage (false) : dclare la page courante comme page derreur

errorPage : dclare la page derreur utiliser

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 24
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Directives include et taglib


Include
Avec file pour spcifier le fichier inclure

Taglib
Avec uri pour spcifier le nom du fichier
Avec prefix pour spcifier le prfixe xml

Formation Java Server Faces alphorm.com

Ce quon a couvert
Larchitecture JSP

Exemple de JSP

La syntaxe des JSP

Les directives JSP

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 25
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Lapplication Web
JSP et Javabeans

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Dfinition des JavaBeans

Usage des JavaBeans

Les actions JSP

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 26
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Dfinition de JavaBeans
Un JavaBean est une classe Java qui respecte quelques conventions
Avoir un constructeur sans argument
Utiliser le motif JavaBean property pour exposer les valeurs au client

Formation Java Server Faces alphorm.com

Usage des JavaBeans


Utiliser une action jsp:useBean
Avec id : rfrence vers le bean
Avec class : nom de la classe du bean
Avec scope : porte du bean (page, request, session, application)

Puis rcuprer une proprit avec jsp:getProperty (attributs name, property)

Positionner une propit avec jsp:setProperty ( attributs name, property, value)

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 27
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les actions JSP


Action jsp:forward, page=. Ralise un forward vers une autre page

Action jsp:include page= Ralise un include, ventuellement paramtr


avec jsp:param

Action jsp:plugin permet de solliciter une applet

Action jsp:text permet de gnrer du texte (pour EL)

Actions jsp:element, jsp:attribute et jsp:body permettent de gnrer du


XML

Formation Java Server Faces alphorm.com

Ce quon a couvert
Dfinition de JavaBeans

Usage des JavaBeans

Les actions JSP

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 28
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Lapplication Web
Les balises JSP

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Les balises JSP standards

La balise forEach

La balise if

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 29
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les balises standards


JSP dfinit des balises

Standard : pour toute page JSP

Pour les donnes SQL

Pour le XML et la manipulation de texte

Des manipulations de chanes de caractres

Ncessite la dclaration de la bibliothque utilise

Formation Java Server Faces alphorm.com

La balise forEach
Permet litration
Sur une squence de nombres, avec un incrment

Sur un conteneur

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 30
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

La balise if
Le corps de la balise que si lattribut test est valu vrai

Formation Java Server Faces alphorm.com

Ce quon a couvert
Les balises JSP standard

La balise forEach

La balise if

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 31
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Lapplication Web
Les balises
personnalises

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Cration dune balise personnalise

Dclaration de la balise

Utilisation de la balise

Balise vs JavaBean

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 32
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Cration dune balise personnalise


Implmenter javax.servlet.jsp.tagext.JspTag

Ou bien hriter de javax.servlet.jsp.tagext.SimpleTagSupport

Redfinir doTag()

Ecrire le HTML correspondant


Utiliser super.getJspContext().getOut().print()

Formation Java Server Faces alphorm.com

Dclaration de la balise
Dans un fichier .tld

Fait le lien entre le nom de la balise et la classe Java

Peut dclarer des attributs (de balise)

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 33
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Utilisation de la balise
Dclarer lusage de la bibliothque de balise

Utiliser a balise personnalise

Formation Java Server Faces alphorm.com

Balise vs JavaBean
Les deux cherchent sparer le code Java de la prsentation

La mise en uvre des JavaBean semble plus simple

Les balises personnalises permettent une syntaxe plus riche

Les balises personnalises nont que la porte de page

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 34
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Cration dune balise personnalise

Dclaration de la balise

Utilisation de la balise

Balise vs JavaBean

Formation Java Server Faces alphorm.com

La technologie JSF
Une application JSF

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 35
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Quest-ce quune application JSF ?

Une application JSF simple

Le modle de linterface utilisateur

Le modle de rendu

Le modle de conversion

Le modle dvnement

Le modle de validation

Le modle de navigation

Formation Java Server Faces alphorm.com

Quest-ce quune application JSF ?


JSF est un framework de composants ct serveur pour construire des
applications Web Java
JSF contient : une API pour grer les vnements, la validation, et la
conversion des donnes, dfinir la navigation, supporter
linternationalisation ET des balises pour intgrer ces composants dans
les pages Web et les connecter des objets ct serveur
JSF permet dallger les tches de construction de lapplication : crer
les pages web, placer les composants dans la page, lier les composants
aux donnes, grer les vnements, sauver et restaurer les tats de
lapplication, rutiliser les composants

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 36
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Une application JSF simple


Exemple avec 2 pages web avec Facelets et 1 bean manag

Application compile lors du premier accs index.xhtml

Un arbre de composants est plac dans FacesContext, puis rempli et li lobjet


de type Hello
La vue est rendue au client

Larbre est dtruit


Formation Java Server Faces alphorm.com

Le modle de linterface utilisateur


Un composant est graphique ou non

Un composant graphique peut tre simple ou compos

Larchitecture JSF fournit :


des javax.faces.component.UIComponent spcifiant ltat et le comportement
graphique
un modle de rendu
un modle de conversion qui dfinit comment enregistrer les convertisseurs
sur les composants
un modle dvnements pour grer les vnements sur les composants
un modle de validation pour enregistrer les validateurs sur les composants
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 37
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les composants graphiques


Les composants sont drivs de javax.faces.component.UIComponent

La classe UIComponentBase fournit un comportement par dfaut

UIColumn : une colonne dans un UIData

UICommand : un contrle qui dclenche des actions

UIData : un lien vers les donnes (un javax.faces.model.DataModel)

UIForm : un formulaire

UIGraphic : pour afficher une image

Formation Java Server Faces alphorm.com

Les composants graphiques


UIInput : une entre, sous classe de UIOutput

UIMessage : un message derreur localis (et UIMessages)

UIOutcomeTarget : un lien, ou bouton

UIPanel : gestion des composants

UISelect * : gestion de slections

UIViewRoot : racine des composants dans la vue

Les composants implmentent des interfaces de comportement :


ActionSource, EditableValueHolder, StateHolder, NamingContainers,

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 38
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Le modle de rendu
Une classe de rendu spare des classes de composants :
Adapter le rendu un client ou un type de client
Changer lapparence des composants sur une page

Un render kit correspond un type de client


Un ensemble de classes Renderer pour chaque composant
Le rendu est choisi avec la balise : commandButton vs commandLink

Formation Java Server Faces alphorm.com

Le modle de conversion
Un composant peut tre associ un objet ct serveur

Lapplication voit les donnes de deux faons


La vue modle : les types de donnes
La vue prsentation : une faon de lire ou modifier les donnes

Les conversions sont automatiques

Pour changer les conversions standards, enregistrer une sous-classe de


javax.faces.convert.Converter sur un UIOutput

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 39
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Le modle dvnements
Conforme au modle classique des JavaBeans

Les vnements sont :


Les vnements applicatifs
Lis aux actions : mis par les boutons et les liens
Lis aux changements de valeur : mis par UIInput
Les vnements systmes
Correspondent au cycle de vie de lapplication
Les vnements de donnes
Une ligne de UIData qui change

Formation Java Server Faces alphorm.com

Le modle de validation
La validation est excute avant la mise jour des donnes

Des classes standards, drivant de javax.faces.validator.Validator

Des balises pour la mise en place dans le html

Possibilit de dclarer un validateur qui sapplique pour tous les input

Possibilit de crer son propre validateur

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 40
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Le modle de navigation
La navigation est implicite ou dfinie par lutilisateur

Navigation implicite par lattribut action

Navigation dfinie par lutilisateur dans faces-config.xml

Dclenchement dune mthode

Formation Java Server Faces alphorm.com

Ce quon a couvert
Quest-ce quune application JSF ?

Une application JSF simple

Le modle de linterface utilisateur

Le modle de rendu

Le modle de conversion

Le modle dvnement

Le modle de validation

Le modle de navigation

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 41
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

La technologie JSF
La navigation

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
La navigation implicite

La navigation dfinie dans le xml

La navigation contrle par les beans

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 42
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

La navigation implicite
La page xhtml contient le nom de la page cible

Lattribut action rfrence par dfaut un nom

Le serveur ajoute xhtml comme extension pour trouver la page

Dans cet exemple, reponse.xhtml est une page accessible

Formation Java Server Faces alphorm.com

La navigation dans un fichier xml


La configuration de la navigation hors des pages xhtml

Un nom logique est utilis dans la page xhtml

Ce nom logique associ lid de la vue


Correspond une rgle

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 43
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

La navigation contrle par les beans


La commande est envoye un bean

Appel dune mthode du bean

Le retour du bean correspond au nom logique utilis ensuite

Formation Java Server Faces alphorm.com

Ce quon a couvert
La navigation implicite

La navigation dfinie dans le xml

La navigation contrle par les beans

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 44
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

La technologie JSF
Le cycle de vie

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Requte initiale ou postback

La classe FacesContext

Lattribut immediate

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 45
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Requte initiale et postback


Les deux tapes essentielles sont
Execute
Subdivise en plusieurs tapes : Restore View, Apply Request,
Render
Rendu de la rponse vers le client

Formation Java Server Faces alphorm.com

La classe FacesContext
Nom complet javax.faces.context.FacesContext

Contient la vue rendre au client

FacesContext.renderResponse passe directement ltape de rendue


Cas de la requte initiale

FacesContext.responseComplete vite ltape de rendu


Cas dun passage une application sans composant

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 46
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Lattribut immediate
Cet attribut va forcer la validation, les vnements et les conversions
tre valus dans la phase Apply Request
Il faut la cohrence entre la valeur de cet attribut sur un champ dentre
et sur les actions correspondantes
Par exemple, si un bouton a cet attribut vrai, il est trait avant que les
donnes des champs ne soient mises jour

Formation Java Server Faces alphorm.com

Ce quon a couvert
Requte initiale ou postback

La classe FacesContext

Lattribut immediate

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 47
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les facelets
Une application
Facelets

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Les facelets

Le cycle de vie de lapplication

Exemple

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 48
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les facelets
Langage dclaratif pour construire des vues JSF
Utilisation de xhtml
Support de bibliothques de balises (facelets, jsf, jstl)
Support de Expression Language (EL)
Modles pour les composants et les pages

Conformit au xhtml, extension de fichier en xhtml

Les bibliothques sont supportes via les espaces de nommage xml

Formation Java Server Faces alphorm.com

Les bibliothques supportes


Balises JSF Facelets, prfixe ui:, exemple ui:insert

Balises JSF HTML, prfixe h:, exemple h:head

Balises JSF Core, prfixe f:, exemple f:actionListener

Balises elements, prfixe jsf:, exemple jsf:id

Balises attributs, prfixe p:, exemple p:type

Balises composite, prfixe cc:, exemple cc:interface

Balises JSTL Core, prfixe c:, exemple c:forEach

Balises fonctions, prfixe fn:, exemple fn:toUpperCase

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 49
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Le cycle de vie de lapplication


premire requte, un UIViewRoot est cr et plac dans le FacesContext

UIViewRoot est remplie avec les composants

La vue est rendue au client

Ltat est conserv

Le client interagit avec la vue, conduisant la cration dune nouvelle


ou la restauration de lancienne

Formation Java Server Faces alphorm.com

Exemple dapplication
Crer les beans manags

Crer les pages avec les balises de composants

Dfinir la navigation

Configurer lapplication

Dclarer les beans manags

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 50
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les beans manags


Chaque page est connecte un bean

Plusieurs pages peuvent se connecter sur le mme bean

Annot @Named, pour tre utilis via EL

Annot dune porte particulire, pour tre utilisable dans la requte, la


session, lapplication

Formation Java Server Faces alphorm.com

Les pages de composants


Ajouter des composants sur la page

Les connecter aux valeurs de bean et enregistrer convertisseurs, etc

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 51
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Configurer lapplication
Configurer le servlet dans web.xml

Page de dmarrage de lapplication

Configuration de faces-config.xml

Formation Java Server Faces alphorm.com

Divers
Une page template est un modle rcurrent dans lapplication
Dfini avec ui:insert et utilis avec ui:define

Il est possible de dfinir des composants rutilisables


Dfini avec composite:interface, composite:implementation,

Les contrats sont des paramtrages de lapplication


Plusieurs parties de lapplication ont des contrats diffrents

Les lments et attributs pass-through


Envoys directement au client en tant que HTML5

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 52
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Les facelets

Le cycle de vie de lapplication

Exemple

Formation Java Server Faces alphorm.com

Les facelets
Construire une
application Facelets

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 53
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Prparer un template

Crer les parties

Crer des composites

Formation Java Server Faces alphorm.com

Prparer un template
Grce la balise ui:insert

Directement avec NetBeans

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 54
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Crer les parties


Les clients du template redfinissent les zones

Grce aux balises


ui:composition pour introduire le template utilis
ui:define pour placer du contenu

Formation Java Server Faces alphorm.com

Crer des composites


Dfinir les attributs du composant

Puis composer le contenu

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 55
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Utiliser ce composite
Rfrencer le fichier sauver dans un rpertoire

Puis utiliser ce composant comme les autres

Formation Java Server Faces alphorm.com

Ce quon a couvert
Prparer un template

Crer les parties

Crer des composites

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 56
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les facelets
Les balises HTML5

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Les lments pass-through

Les attributs pass-through

Exemples

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 57
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les lments pass-through


Utiliser les balises HTML5

Les grer comme des lments UIComponent

Mettre un attribut spcifique permettant le traitement

Formation Java Server Faces alphorm.com

Les attributs pass-through


Les attributs pass-through sont envoys directement au navigateur

Nexistent pas sur les lments JSF

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 58
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Exemples
Balise Identifiant Facelets
a jsf:action h:commandlink
body h:body
input type=button h:commandButton
input type=checkbox h:selectBooleanCheckBox
input type=date h:inputText
input type=password h:inputSecret
link h:outputStyleSheet

Formation Java Server Faces alphorm.com

Ce quon a couvert
Les lments pass-through

Les attributs pass-through

Exemples

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 59
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Expression Language
La syntaxe de EL

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Vue gnrale

Evaluation immdiate

Evaluation diffre

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 60
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Vue gnrale
Permet la communication entre la couche Web et les beans manags

La couche Web = la couche de prsentation

Les beans manags = la couche de logique de lapplication

EL est utilis par :


JSP
JSF
CDI

Formation Java Server Faces alphorm.com

Ce que permet EL
Expressions simples pour accder aux donnes des beans

Lire des donnes contenues dans des beans

Ecrire des donnes dans des beans

Invoquer des mthodes Java

Raliser des oprations arithmtiques, logiques, etc

Construire des collections dobjets et y invoquer des mthodes

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 61
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Evaluation immdiate
Lexpression est value ds que la page est rendue

Utilise la syntaxe ${}

Pas forcment trs pratique, tant donn le cycle de vie des pages

Utilis pour des donnes statiques ou fixes durant lapplication

Formation Java Server Faces alphorm.com

Evaluation diffre
Lexpression utilise la syntaxe #{}

Le moment de lvaluation va dpendre de lendroit

Requte initiale : lecture des nom et mot de passe

Postback : positionnement des valeurs

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 62
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Vue gnrale

Evaluation immdiate

Evaluation diffre

Formation Java Server Faces alphorm.com

Expression Language
Les expressions de
valeurs

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 63
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Expression gnrale

Rfrencement dobjets

Rfrencement de proprits

Les littraux

Les paramtres de mthodes

Utilisation des expressions de valeurs

Formation Java Server Faces alphorm.com

Expression gnrale
Les expressions de valeurs peuvent tre r-value ou l-value
Utilises en lecture ou en criture

Les expressions immdiates ne sont que r-value

Avec JSF :
Requte initiale : lit lexpression
Postback : ventuellement positionnement de la valeur

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 64
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Rfrencement dobjets
Lexpression dmarre sur un objet de haut-niveau :
Des paramtres, variables EL, beans manags, objets implicites, classes

Expression base de ${objet}

Il est possible de changer la faon dont le serveur retrouve lobjet

Dans les cas des constantes dnumr


Utiliser directement le nom de la constante, prfix du nom de lenum

Formation Java Server Faces alphorm.com

Rfrencement de proprits
Utiliser la notation de slection . ou [ ]

Par exemple :

Il est possible daccder aux static sur des classes : Boolean.FALSE

La syntaxe [ ] permet daccder au ime lment dune collection

Pour les maps, les deux syntaxes sont possibles

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 65
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les littraux
Quelques littraux sont prdfinis
Boolens : true, false,
Entiers : comme Java
Flottants : comme Java
Texte : entre double ou simple quotes
Null : null

Formation Java Server Faces alphorm.com

Les paramtres de mthodes


Les syntaxes . ou [ ] peuvent tre utilises

Ajouter des parenthses

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 66
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Utilisation des expressions de valeurs


Avec le $, dans les textes statiques et tous les attributs qui lacceptent

Lvaluation se fera au rendu de la page

Si plusieurs expressions se suivent, elles sont values de gauche


droite
Une expression peut contenir loprateur de concatnation

Formation Java Server Faces alphorm.com

Ce quon a couvert
Expression gnrale

Rfrencement dobjets

Rfrencement de proprits

Les littraux

Les paramtres de mthodes

Utilisation des expressions de valeurs

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 67
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Expression Language
Les expressions de
mthodes

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Syntaxe gnrale

Lambda expressions

Oprations sur des collections

Exemples doprateurs

Mots rservs

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 68
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Syntaxe gnrale
Les expressions de mthodes sont diffres

Accde des mthodes publiques dun bean

Utilise la syntaxe . ou bien [ ]

Les expressions de mthodes ne sont utilisables que pour les attributs

Une seule expression de mthode possible


Pas de concatnation

Ou sous la forme dun simple texte

Formation Java Server Faces alphorm.com

Les expressions lambda


Equivalent une expression de valeur avec paramtres

Syntaxe identique Java 8

Peut tre utilise en paramtre de mthode

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 69
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Oprations sur les collections


Cration de set avec { }, de liste avec [ ], de map avec {a:b}

Les stream java et certaines de leurs oprations sont applicables en EL


filter, map, min, reduce,

Formation Java Server Faces alphorm.com

Exemples doprateurs
Il est possible dappliquer des oprateurs
Arithmtiques
Logiques
Relationels
Conditionel

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 70
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Mots rservs
Certains mots rservs ne peuvent pas tre utiliss en EL :
And, or, not, eq, ne

Formation Java Server Faces alphorm.com

Ce quon a couvert
Syntaxe gnrale

Lambda expressions

Oprations sur des collections

Exemples doprateurs

Mots rservs

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 71
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

JSF dans les pages


Ajouter des
composants

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Vue gnrale

Les composants de la bibliothque HTML

Les attributs habituels

Les formulaires

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 72
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Vue gnrale
Une page JSF typique contient
Les espaces de nommage dclarant les bibliothques utilises
Les dfinitions de entte et corps de page
Un formulaire

Pour construire la page JSF, il faut au moins la bibliothque HTML et la


bibliothque core.
Un prfixe sera attribu chacune de ces bibliothques, en gnral
h: et f:

Formation Java Server Faces alphorm.com

Les composants de la bibliothque HTML


Reprsentation des lments HTML

A lintrieur dun formulaire

Gre les entres utilisateur, pour la saisie ou la restitution

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 73
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les composants de la bibliothque HTML


Balise
h:commandButton Soumettre un formulaire
h:commandLink Lien
h:form Dfinir un formulaire
h:graphicImage Afficher une image
h:inputFile Pour charger un fichier
h:inputText Entrer un texte
h:inputSecret Entrer un mot de passe
h:inputHidden Cacher une variable dans la page
h:inputTextArea Entrer un texte multiligne

Formation Java Server Faces alphorm.com

Les composants de la bibliothque HTML


Balise
h:outputLabel Afficher un texte
h:outputText Afficher un texte
h:message Afficher un message
h:panelGrid Afficher une table
h:panelGroup Grouper des composants
h:selectOneMenu Permettre la slection dun lment
h:selectBooleanCheckbox Changer la valeur dune checkbox
h:dataTable Afficher une table de donnes
h:column Une colonne dans la table

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 74
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les attributs habituels


Attribut
binding Cre un lien vers une proprit de bean
id Identifie le composant
immediate Applique les vnements ds la requte
rendered Spcifie une condition pour rendre le composant
style Spcifie une CSS
styleClass Spcifie une classe de style
value Spcifie une valeur (EL)

Formation Java Server Faces alphorm.com

Les formulaires
Le formulaire contient les composants qui prsentent les donnes ou
qui servent entrer les donnes
Utiliser la balise <h:form>

Plusieurs formulaires sont possibles dans une page, mais seules les
donnes lies ce formulaire seront envoyes lors du postback de
soumission
Le formulaire ne propose aucune disposition des lments dans la page

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 75
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Vue gnrale

Les composants de la bibliothque HTML

Les attributs habituels

Les formulaires

Formation Java Server Faces alphorm.com

JSF dans les pages


Ajouter un
composant texte

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 76
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Les diffrents types de textes

Les textes en entre

Les textes en sortie

Les composants inputText et inputSecret

Les composants outputLabel et outputLink

Utiliser outputFormat

Formation Java Server Faces alphorm.com

Les diffrents types de textes


Par composants textes non entendons des composants qui permettent
de voir ou dditer du texte
Les labels permettent juste dafficher du texte

Les champs permettent dditer du texte


Uni ou multilignes

Les champs de mots de passe

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 77
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les textes en entre


Diffrentes balises sont possibles :
h:inputHidden cache une variable dans la page
h:inputSecret dite une ligne de texte, remplac par des astrisques
h:inputText dite une ligne de texte
h:inputTextArea dite plusieurs lignes de texte

Formation Java Server Faces alphorm.com

Les attributs des champs en entre


converter identifie un convertisseur
converterMessage spcifie un message derreur li au convertisseur
dir indique la direction dcriture ltr ou rtl
label identifie le composant dans les messages derreur
lang spcifie le code langage
required remplissage obligatoire ou non
requiredMessage message li lerreur de ne pas avoir rempli le champ
validator spcifie le bean valideur de ce champ texte (EL)
validatorMessage spcifie le message li
valueChangeListener spcifie un bean traitant le contenu du champ

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 78
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les textes en sortie


Diffrentes balises sont possibles :
h:outputFormat affiche un message format
h:outputLabel affiche un label lecture seule
h:outputLink affiche un lien vers une autre page, sans action
h:outputText affiche un texte dune ligne

Formation Java Server Faces alphorm.com

Les composants inputText et inputSecret


Pour saisir un texte

Pour saisir un mot de passe

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 79
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les composants outputLabel et outputLink


Pour crer un label qui illustre et focus sur un input

Pour faire un lien

Formation Java Server Faces alphorm.com

Utiliser outputFormat
Formater un texte

Utilise le format de java.text.MessageFormat

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 80
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Les diffrents types de textes

Les textes en entre

Les textes en sortie

Les composants inputText et inputSecret

Les composants outputLabel et outputLink

Utiliser outputFormat

Formation Java Server Faces alphorm.com

JSF dans les pages


Ajouter un composant
commande

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 81
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Rles des composants de commande

Rendre un bouton

Rendre un lien

Formation Java Server Faces alphorm.com

Rles des composants de commande


Raliser des actions, soumettre un formulaire ou naviguer

h:commandButton est rendu comme un bouton

h:commandLink est rendu comme un lien

Ces composants possdent 2 attributs remarquables :


action chane de caractre ou expression EL pour dterminer la destination
actionListener pointe sur une mthode dclenche lors de laction

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 82
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Rendre un bouton
Utiliser h:commandButton

Rendu sous la forme de <input type= submit

Pour soumettre un formulaire

Dclenche une action, plusieurs faons de raliser la navigation

Formation Java Server Faces alphorm.com

Rendre un lien
Utiliser h:commandLink

Rendu sous la forme dun <a>

Il est possible de contenir un <h:outputText>

Le rendu de ce composant gnre du javascript

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 83
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Rles des composants de commande

Rendre un bouton

Rendre un lien

Formation Java Server Faces alphorm.com

JSF dans les pages


Ajouter un composant
de slection

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 84
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Les composants de slection

Les composants slection unique

Les composants slection multiple

Afficher le rsultat de la slection

Formation Java Server Faces alphorm.com

Les composants de slection


Pour slectionner dans une liste, dans un ensemble de choix

Slection unique ou multiple

La liste peut tre statique ou dynamique

Rendu par checkbox, radiobutton, drop-down menu ou listbox

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 85
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les composants slection unique


h:selectBooleanCheckbox rend une checkbox, correspond un boolen

h:selectOneRadio rend un ensemble de radiobutton

h:selectOneMenu rend une liste scrollable

h:selectOneListBox rend une liste non scrollable

Formation Java Server Faces alphorm.com

Les composants slection multiple


h:selectManyCheckbox donne un ensemble de checkbox

h:selectManyMenu donne un menu

h:selectManyListbox donne une liste

Les slections multiples sont possibles

Les items sont placs avec f:selectItem ou f:selectItems, comme


prcdemment

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 86
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Afficher le rsultat de la slection


Passer par le binding pour lier les composants aux beans et inversement

Rcuprer la valeur slectionne par lattribut value

Formation Java Server Faces alphorm.com

Ce quon a couvert
Les composants de slection

Les composants slection unique

Les composants slection multiple

Afficher le rsultat de la slection

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 87
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

JSF dans les pages


Ajouter des
composants lis aux
donnes
Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Objectifs de ces composants

Sources de donnes

Attributs optionnels

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 88
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Objectifs de ces composants


Reprsenter une collection dobjets

Sous la forme dune table HTML

Utiliser le composant h:dataTable

Doit tre utilis avec h:column, pour spcifier les caractristiques de


chaque colonne affiche

Formation Java Server Faces alphorm.com

Sources de donnes
La source de donnes peut tre
Une collection de beans
Un bean simplement
Un objet javax.faces.model.DataModel
Un objet java.sql.ResultSet
Un objet javax.servlet. Sql.Result
Un objet javax.sql.RowSet

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 89
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Attributs optionnels
Dans h:dataTable , rows et first spcifient le nombre et la premire ligne

Les styles CSS :


captionClass titre de la table
columnClasses les colonnes
footerClass le bas de page
headerClass le haut de page
rowClasses les lignes
styleClass le style de la table

Formation Java Server Faces alphorm.com

Ce quon a couvert
Objectifs de ces composants

Sources de donnes

Attributs optionnels

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 90
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

JSF dans les pages


Ajouter des
composants divers

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Afficher une image

Afficher un message

Mettre en place un marque-page

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 91
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Afficher une image


Le composant est h:graphicImage

Rfrence directe vers une image

Ou bien utiliser les ressources web

Formation Java Server Faces alphorm.com

Afficher un message
Utiliss lors des checs de validation ou formatage

Composant h:message pour un composant spcifique

Composant h:messages pour la page entire

Permet de placer les messages derreur

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 92
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Mettre en place un marque-page


Les composants h:link ou h:button

Permettent un lien vers une page

Utilisent le mapping faces-config

Formation Java Server Faces alphorm.com

Ce quon a couvert
Afficher une image

Afficher un message

Mettre en place un marque-page

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 93
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

JSF dans les pages


Grouper les
composants

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Grouper en table

Grouper des composants

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 94
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Grouper en table
Utiliser h:panelGrid, rendu comme un TABLE

Spcifier
le nombre de colonnes, titre, etc
Des styles css pour les diffrentes parties de la table
Peut contenir entte et bas de page

Formation Java Server Faces alphorm.com

Grouper des composants


Utiliser h:panelGroup pour grouper des composants

Ils apparaissent comme un seul composant

Rendu sous la forme de div ou de span

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 95
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Grouper en table

Grouper des composants

Formation Java Server Faces alphorm.com

Converters etc
Les convertisseurs
standards

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 96
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Rles et usage des convertisseurs

DateTimeConverter

NumberConverter

Formation Java Server Faces alphorm.com

Rles et usages des convertisseurs


Transformer une chane de caractres en un objet

Et vis versa

Standards : BigDecimal, BigInteger, Boolean, Byte, DateTime, Double

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 97
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

DateTimeConverter
Cible le type java.util.Date

Ncessite la dfinition dun style (format)

Propose les attributs


binding, dateStyle, for, locale, pattern, timeStyle, timeZone, type

Formation Java Server Faces alphorm.com

NumberConverter
Utiliser le composant maxFractionDigits,
h:convertNumber maxIntegerDigits, min-

Avec les attributs pattern

binding type

currencyCode
for
groupingUsed
integerOnly
locale

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 98
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Rles et usage des convertisseurs

DateTimeConverter

NumberConverter

Formation Java Server Faces alphorm.com

Converters etc
Les listeners

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 99
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Rle et intrt des listeners

Grer les changements de valeurs

Grer les actions

Formation Java Server Faces alphorm.com

Rle et intrt des listeners


Peut tre une classe ou une mthode

Utiliser les attributs valueChangeListener ou actionListener pour une


mthode
Utiliser les balises f: correspondantes

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 100
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Grer les changements de valeurs


Utilis avec les attributs :
type pour donne le nom de la classe du listener ValueChangeListener
binding pour rfrencer un objet qui implmente

Formation Java Server Faces alphorm.com

Grer les actions


Utiliser f:actionListener , avec les attributs type et binding

Cas particulier de f:setPropertyActionListener pour garder une rfrence


Attributs value et target

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 101
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Rle et intrt des listeners

Grer les changements de valeurs

Grer les actions

Formation Java Server Faces alphorm.com

Converters etc
Les validateurs

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 102
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Rle et objectifs des validateurs

Valider une valeur

Utiliser les balises de validation

Formation Java Server Faces alphorm.com

Rle et objectifs des validateurs


Pour valider les saisies utilisateur

BeanValidator bean validateur pour le composant

DoubleRangeValidator limites de valeurs pour les flottants

LengthValidator limites de valeurs pour les chanes

LongRangeValidator limites de valeurs pour les entiers

RegexValidator correspondance sur une expression rgulire

RequiredValidator vrifie la prsence dune valeur

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 103
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Valider une valeur


Plusieurs possibilits
Utiliser les attributs dans le tag
Utiliser lattribut validator pour cibler une mthode de validation
Encapsuler une balise de validation et positionner validatorId

Ne peut tre utiliser que sur les composants qui permettent ldition de
valeurs

Formation Java Server Faces alphorm.com

Utiliser les balises de validation


Avec des attributs

Avec des balises imbriques

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 104
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Expression rgulire
Une expression rgulire peut permettre de vrifier
Mots de passe, email, tlphones,

Formation Java Server Faces alphorm.com

Ce quon a couvert
Rle et objectifs des validateurs

Valider une valeur

Utiliser les balises de validation

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 105
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les beans manags


Gnralits

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Les liaisons entre composant et bean

Exemple de liaisons

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 106
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les liaisons entre composant et bean


Un composant peut tre li par sa valeur ou par son instance

Par la valeur suppose daffecter lattribut value


La valeur est dans le composant

Par linstance, il faut utiliser binding


La valeur est dans le bean

Formation Java Server Faces alphorm.com

La liaison de value
La valeur est porte par le composant
La page a tout contrle sur le composant
Il ny a pas de dpendance de la page vers Java
Les conversions interviennent de manire transparentes

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 107
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

La liaison de binding
Les attributs du composant peuvent tre modifis par le bean
Accs via la programmation applicative
Le bean instancie le composant

Utilise lorsque Java a besoin de modifier les attributs qui commandent


le rendu des composants

Formation Java Server Faces alphorm.com

Exemples de laisons
Les liaisons par valeur peuvent tre plus complexes quun accs une
proprit de bean
Expression boolenne
Une proprit venant dun paramtre
Une proprit de bean
Une valeur dans un tableau
Une valeur dans une collection
Une proprit dun objet dans une collection

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 108
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Les liaisons entre composant et bean

Exemple de liaisons

Formation Java Server Faces alphorm.com

Les beans manags


Lier les valeurs

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 109
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Mise en uvre

Liaison vers les objets implicites

Formation Java Server Faces alphorm.com

Mise en oeuvre
Postionner lattribut value

Le bean manag peut tre paramtr aussi dans un fichier xml

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 110
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Liaison vers un objet implicite


La valeur peut pointer vers des objets implicites

Les objets implicites sont :


facesContext, application, initParam, session, view, component, cc, request,
applicationScope, sessionScope, viewScope, requestScope, paramValues,
headerValues, cookie, resource

Formation Java Server Faces alphorm.com

Ce quon a couvert
Mise en uvre

Liaison vers les objets implicites

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 111
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Les beans manags


Lier les instances

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Intrt

La laison des convertisseurs, listeners et validateurs

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 112
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Intrt
Lier les instances supposent que le bean cre le composant

Le bean accde aux attributs du composant

Formation Java Server Faces alphorm.com

La liaison des convertisseurs


Avec lattribut binding, lier la proprit du bean au convertisseur etc

Le bean possde alors laccs au convertisseur etc


Les attributs peuvent tre modifis

Il faut que le convertisseur soit imbriqu


Avec lattribut binding

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 113
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Intrt

La laison des convertisseurs, listeners et validateurs

Formation Java Server Faces alphorm.com

Ajax et JSF
Gnralits

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 114
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Vue densemble

Ajax dans JSF

Ajax dans les facelets

Formation Java Server Faces alphorm.com

Vue densemble
Les interactions peuvent tre asynchrones

Le client peut rcuprer des informations sans interfrer avec le reste de


la page
La rponse du serveur est fournie sous la forme de XML
Autre possibilit en JSON

Avantages attendus
Validation des formulaires en temps rel
Fonctionnalits nouvelles
Mise jour partielle

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 115
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ajax dans JSF


Pour utiliser Ajax dans JSF
Ajouter le javascript dans lapplication
Utiliser la bibliothque built-in

La bibliothque built-in peut tre utilise dans le code des beans

Les fonctionnalits peuvent tre tendues

La balise est f:ajax

Formation Java Server Faces alphorm.com

Ajax dans les facelets


Utiliser f:ajax dans un composant standard

Avec des attributs


render indique les composants rendre
execute indique les composants excuter
onerror, onevent donnent les noms des fonctions js qui grent ces cas

Utiliser le javascript jsf.ajax.request()

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 116
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Vue densemble

Ajax dans JSF

Ajax dans les facelets

Formation Java Server Faces alphorm.com

Ajax et JSF
Envoyer une requte
Ajax

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 117
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Utiliser lattribut event

Utiliser lattribut execute

Utiliser lattribut immediate

Utiliser lattribut listener

Formation Java Server Faces alphorm.com

Utiliser lattribut event


Les valeurs possibles sont click, keyup, mouseover, focus, blur

Par dfaut, correspondance avec lvnement associ au composant

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 118
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Utiliser lattribut execute


Dfinit le composant excuter par le serveur

Plusieurs composants peuvent tre lists

La valeur de cet attribut est


Le nom (id) dun composant
Les valeurs @this, @all, @none, @form

Formation Java Server Faces alphorm.com

Utiliser lattribut immediate


Par dfaut, vaut false

Permet danticiper le traitement sur ce composant

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 119
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Utiliser lattribut listener


Dcrit une mthode dclencher

Correspond lvnement prvu par event

Peut tre accompagn de render pour spcifier le composant


remettre jour

Formation Java Server Faces alphorm.com

Ce quon a couvert
Utiliser lattribut event

Utiliser lattribut execute

Utiliser lattribut immediate

Utiliser lattribut listener

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 120
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ajax et JSF
Grer les erreurs

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Suivre les vnements

Grer les erreurs

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 121
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Suivre les vnements


Lattribut utiliser est onevent

La valeur est le nom dune mthode javascript

La mthode sera appele chaque tape ajax


savoir begin, complete, success

La fonction javascript sera appele avec une donne


Proprits responseXML-Text-Code, source, status, type

Formation Java Server Faces alphorm.com

Grer les erreurs


Utilise lattribut onerror

La valeur est une fonction javascript

Cette fonction reoit en paramtre une donne


Proprits description, errorName, errorMessage
Type=error, Status=emptyResponse, httpError, malformedXML, serverError

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 122
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Suivre les vnements

Grer les erreurs

Formation Java Server Faces alphorm.com

Ajax et JSF
Recevoir une rponse

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 123
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Recevoir la rponse

Grouper des composants

Javascript dans Jsf

Formation Java Server Faces alphorm.com

Recevoir la rponse
Utiliser lattribut render

Les valeurs peuvent tre @this, @all, @none, @form

En ciblant le composant, celui-ci fait apparatre la rponse

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 124
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Grouper les composants


La balise f:ajax peut encadrer plusieurs composants

Tout le bloc est trait en ajax

Formation Java Server Faces alphorm.com

Javascript dans Jsf


Le fichier jsf.js est automatiquement fournit au client

Utiliser h:outputScript pour envoyer un autre fichier .js

On peut utiliser le contenu de jsf.js explicitement


Mettre en uvre la fonction request()

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 125
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Recevoir la rponse

Grouper des composants

Javascript dans Jsf

Formation Java Server Faces alphorm.com

Configurer lapplication
Annotations sur les
beans manags

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 126
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Les annotations de porte

La cration en avance

Formation Java Server Faces alphorm.com

Les annotations de porte


Application
Accessible travers toutes les sessions

Session
Accessible travers toutes les requtes HTTP (une connexion )

Flow
Accessible travers un flux donn

Request
Accessible pour une requte

Dependent
Indique que le bean dpend de la visibilit dun autre bean

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 127
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

La cration en avance
Les beans sont normalement crs la demande

Provoquer la cration en avance dun bean va faire que le bean existe


avant mme den avoir besoin
Utiliser @ManagedBean(eager=true)
accompagnant @ApplicationScope

Formation Java Server Faces alphorm.com

Ce quon a couvert
Les annotations de porte

La cration en avance

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 128
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Configurer lapplication
Configurer les beans
avec XML

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

Plan
Le fichier de configuration

Intrt de paramtrer par le fichier xml

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 129
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Le fichier de configuration
Dans faces-config.xml

La balise <managed-bean>

Dcrire
La classe
Le nom
La porte
Des valeurs initiales pour les proprits

Formation Java Server Faces alphorm.com

Intrts
Paramtrage indpendant du code

Peut tre modifi aprs dploiement

Ne ncessite pas de recompilation

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 130
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Le fichier de configuration

Intrt de paramtrer par le fichier xml

Formation Java Server Faces alphorm.com

Configurer lapplication
Prise en compte de la
langue

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 131
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Construction des ressources langage

Configuration des langues

Accs aux textes traduits

Formation Java Server Faces alphorm.com

Construction des ressources langage


Crer des fichiers de proprits

Nommage des fichiers <nom-du-bundle>_<codelang>.properties

Placs dans un package

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 132
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Configuration des langues


Dans le fichier faces-config.xml

Donner lemplacement du bundle

Spcifier les langues utilisables

Formation Java Server Faces alphorm.com

Accs aux textes traduits


Spcifier le nom du bundle et la cl

La langue utilise est la langue du navigateur ou langue par dfaut

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 133
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Construction des ressources langage

Configuration des langues

Accs aux textes traduits

Formation Java Server Faces alphorm.com

Configurer lapplication
Faces flows

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 134
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Dfinition

Mise en uvre

Configuration

Formation Java Server Faces alphorm.com

Dfinition
Une porte spcifique des variables : flowScope

Permet de limiter la validit de certaines donnes un enchanement

Possde un point dentre et un point de retour

Ressemble des appels de processus

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 135
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Mise en uvre implicite


Donner un nom ce flow , utiliser ce nom comme action

Crer un rpertoire de ce nom au mme niveau que WEB-INF

Y placer
Un fichier de config <nom_du_flux>.xml (vide)
Un fichier dentre <nom_du_flux>.xhtml
Autant de fichiers xhtml que ncessaires

Un retour
<nom_du_flux>-return.xml

Formation Java Server Faces alphorm.com

Configuration
Le flux peut tre configur
Par fichier
Dans le rpertoire du flux
- Nom du flux, son point de retour

- Les paramtres en entre

- Les appels dautres flux

Par annotations

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 136
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Dfinition

Mise en uvre

Configuration

Formation Java Server Faces alphorm.com

Configurer lapplication
La scurit

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 137
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Plan
Les mthodes dauthentification

La dfinition des rles de scurit

La dfinition des contraintes de scurit

Formation Java Server Faces alphorm.com

Les mthodes dauthentification


Authentification de base
BASIC utilise une bote de dialogue standard pour identifier lutilisateur

Authentification avec formulaire


FORM utilise une bote de dialogue spcifique

Authentification par certificat

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 138
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Dfinition des rles


Dfinir les rles dans web.xml

Dfinir le rapport entre le principal et le rle, avec les mots de passe


correspondant
Selon le serveur
Avec Glassfish
Dans glassfish.xml

Formation Java Server Faces alphorm.com

Dfinition des contraintes de scurit


Laccs des ressources va tre limit certains rles
Dfinir les ressources protges
Dfinir les rles autoriss

Dans web.xml

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 139
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Ce quon a couvert
Les mthodes dauthentification

La dfinition des rles de scurit

La dfinition des contraintes de scurit

Formation Java Server Faces alphorm.com

Conclusion

Fabien Brissonneau
Site : http://www.alphorm.com Consultant, concepteur et formateur
Blog : http://blog.alphorm.com Objets Logiciels
Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 140
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Nous avons vu
Chapitre 1 : Lapplication Web

Chapitre 2 : La technologie JSF

Chapitre 3 : Les facelets

Chapitre 4 : Expression Language

Chapitre 5 : JSF dans les pages Web

Chapitre 6 : Converters, Listeners et Validators

Chapitre 7 : Les beans manags

Chapitre 8 : Ajax et JSF

Chapitre 9 : Configurer lapplication JSF

Formation Java Server Faces alphorm.com

Et la suite ?
La formation JEE persistence

Liaison aux donnes par Hibernate

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 141
Alphorm.com-Support de la 25/01/2017
Formation Java Server Faces

Conclusion

Merci et bientt !

Formation Java Server Faces alphorm.com

TOUTE UTILISATION EN
DEHORS DE ALPHORM EST
INTERDITE 142

También podría gustarte