Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Formation
JSF (Java Server Faces)
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " !r#sentation $u formateur " %u&est'ce (ue )SF* " e plan $e la formation " es r#f#rences bibliographi(ues " +utres liens utiles
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!r#sentation $u formateur " Fabien Brissonneau
fabien.brissonneau-gmail.com " mail : fabien.brissonneau-gmail.com " Consultant Concepteur et Formateur " issions $&architecture, $e conception , $e r#alisation logicielles " Fon$ateur $e " +ctuellement en mission sur un projet $e gestion " es r#f#rences :
on profil in1e$2n :
http://fr.linkedin.com/pub/fabien-brissonneau/65/902/92a/
Formation Java Server Faces
%u&est'ce (ue )SF " 3n ensemble $e biblioth4(ues )a5a " 3tilis#es $ans une application ) " !our la couche $e pr#sentation " !ermet $e faire le lien entre 67 et la logi(ue
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
2
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
e plan $e la formation " Chapitre 8 : &application 9eb
techno logie )SF " Chapitre : a technologie " Chapitre ; : es facelets " Chapitre < : =pression anguage " Chapitre > : )SF $ans les pages 9eb
?ali$ators " Chapitre 0 : Con5erters, isteners et ?ali$ators Chapitre @ : es beans beans manag#s manag#s " Chapitre " Chapitre A : +ja= et )SF " Chapitre : Configurer l&application )SF Formation Java Server Faces
es r#f#rences bibliographi(ues " )a5a @ 7he 7he Big !icture, !icture, Oracle Oracle " )a5a ui$e $e $#5eloppement 9eb en )a5a
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
2l n&D a plus (u&E
Formation Java Server Faces
L’application Web Architecture
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " es parties $e l&application " es outils $e $#5eloppement " 3n ser5let " 3n )B " 3ne entit#
Formation Java Server Faces
es parties $e l&application " 3ne application compl4te ) poss4$e les parties sui5antes
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
5
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es outils $e $#5eloppement " Getbeans A.8 ) " e t#l#chargement est li# E
lassfish, impl#mentation $e r#f#rence pour les ser5eurs ) 7omcat, impl#mentation $e r#f#rence pour la partie 9eb
" a5en comme en5ironnement $e construction en lot
H#sou$ les $#pen$ances et t#l#charge les biblioth4(ues n#cessaires
Formation Java Server Faces
3n ser5let " 3ne classe h#ritant $e 6ttpSer5let
" 7raite les r#ponses 677!
" Contient $es r#f#rences au= )B
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
3n )B " 7out simplement un !O)O, (ui s&occupe $e traitement logiciel
" H#f#rence la partie base $e $onn#es
" 2mpl#mente la logi(ue applicati5e
Formation Java Server Faces
3ne entit# " 3ne classe annot#e
" I#clare une cl#
" !eut Jtre accompagn#e $es instructions $e base $e $onn#e
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
7
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " es parties $e l&application " es outils $e $#5eloppement " 3n ser5let " 3n )B " 3ne entit#
Formation Java Server Faces
L’application Web Packaging et déploiement
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " Fichiers war " Fichiers jar " Fichiers ear
Formation Java Server Faces
Fichiers war " e $#ploiement $&une application 9eb est $#crit par un fichier " Sorte $e fichier K2! " Structure pr#$#finie
a racine contient les fichiers te=tes, 67, )S!, )SF 3n r#pertoire 9B'2GF (ui contient les ser5lets et les classes )a5a
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Fichiers )+H " a partie mo$4le est stoc1#e $ans un fichier $&e=tension .jar " Structure pr#$#finie similaire " e r#pertoire 7+'2GF contient $es infos sur la persistence
e fichier persistence.=ml
Formation Java Server Faces
Fichiers +H " e fichier en e=tension ear regroupe les $eu= pr#c#$ents " Structure :
/7+'2GF " /+G2FS7.F
/Lfichier webM.war /Lfichier ejbM.jar
" Ce fichier $#crit $onc le $#ploiement sur un ser5eur )
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
10
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " Fichiers war " Fichiers jar " Fichiers ear
Formation Java Server Faces
L’application Web L’API Servlet
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
11
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " Ce (ue fait un Ser5let " Comment cr#er un Ser5let " =emple $&application " a classe 6ttpSer5let " a classe Ser5letConte=t " a classe 6ttpSession " a classe He(uestIispatcher
Formation Java Server Faces
Ce (ue fait un Ser5let " 3n ser5let est e=#cut# $ans le conteneur 9eb " Ioit e=aminer l&entJte $e re(uJte pour $#terminer le tDpe $e contenu
atten$u par le client
" H#cup#rer les informations E retourner " !ositionner les informations $&entJte $e retour " crire en retour les $onn#es atten$ues
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
12
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Comment cr#er un Ser5let " I#ri5er la classe ja5a=.ser5let.http.6ttpSer5let " 2mpl#menter les m#tho$es correspon$ant au protocole 677!
7,!OS7,6+I,!37,7H+C,O!72OGS, et la m#tho$e ser5ice
" 3tiliser les classes $e re(uJte et $e r#ponse
a classe ja5a=.ser5let.http.6ttpSer5letHe(uest a classe ja5a=.ser5let.http.6ttpSer5letHesponse
Formation Java Server Faces
=emple $&application " 3ne m#tho$e $oet $&un Ser5let pour r#cup#rer $es photos
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
a classe 6ttpSer5let " Ians le pac1age ja5a=.ser5let.http " Classe m4re $es ser5lets, multiples instances, threa$'safe " Suit un cDcle $e 5ie sp#cifi(ue :
2nstanci#e a5ant toute re(uJte 677! #tho$e initNSer5letConfig appel#e : pour placer toute acti5it# longue et n#cessaire au= traitements $es re(uJtes Nou5erture $e conne=ion #tho$e $o, en fonction $e la m#tho$e 677! #tho$e $estroDN appel#e : nettoDage $es ressources couteuses Nfermeture $e conne=ion a mJme instance ne sera plus r#utilis#e
Formation Java Server Faces
a classe Ser5letConte=t " Ians le pac1age ja5a=.ser5let " Cha(ue application 9eb a une uni(ue instance $e cette classe " !ermet E un ser5let $&obtenir $e l&information sur l&en5ironnement
?ersion $e l&+!2 Ser5let support#e, chemin $&acc4s E l&application, !ropose une P map Q $&attributs li#s E l&application
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
a classe 6ttpSession " Ians le pac1age ja5a=.ser5let.http " Hepr#sente une interaction a5ec un client $ans une application
" 3ne instance uni(ue par client, $onc une P map Q par client
" es sessions sont maintenues par le conteneur, par coo1ie ou en r#'
#cri5ant cha(ue lien a5ec un i$ $e session
Formation Java Server Faces
a classe He(uestIispatcher " Ians le pac1age ja5a=.ser5let " !ermet $e g#rer les P forwar$ Q et les P inclu$e Q
" e P forwar$ Q permet $e $eman$er E la ressource $crire la r#ponse E
la place $u ser5let courant
" e P inclu$e Q permet $e $eman$er E la ressource $e compl#ter la
r#ponse (ue le ser5let courant E commencer E #crire
" Obtenu E partir $u conte=te
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
15
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a co cou5 u5eert " Ce (ue fait un Ser5let " Comment cr#er un Ser5let " =emple $&application " a classe 6ttpSer5let " a classe Ser5letConte=t " a classe 6ttpSession " a classe He(uestIispatcher
Formation Java Server Faces
L’application Web Le mapp mappin ing g des des Servlets
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " e $#ploiement $es informations " es chemins $&acc4s " &annotation -9ebSer5let " Or$re $es recherches
Formation Java Server Faces
e $#ploiement $es informations " + partir $e l&application 9eb Nou $u fichier .war " es ressources 9eb :
Fichiers in$e=.html, login.jsp,
" es classes )a5a $ans
/9B'2GF/classes
Fichiers ?oiture.class,
" es biblioth4(ues $ans
E la racine /
/9B'2GF/lib
Fichiers utilitaires.jar,
" 2nform 2nformati ations ons $e $#ploie $#ploiemen mentt /9B'2 /9B'2GF GF/9e /9eb.= b.=ml ml
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
17
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es chemins chemins $&acc4s " 3ne techni(ue simple est $&affecter une 3H2 E cha(ue Ser5let,
relati5ement E la racine $e l&application
" 3ne 3H peut Jtre
Helati5e : /catalogue/album Helati5e a5ec caract4re caract4re g#n#ri(ue : LuriM/R 3ne e=tension e=tension $e fichier : R.jsp
" es r#glages peu5ent se faire a5ec -9ebSer5let
!ac1age ja5a=.ser5let.annotation ja5a=.ser5let.annotation
Formation Java Server Faces
&annotation -9ebSer5let !aram4tre asDncSuppor asDncSupporte$ te$ Nboolean Nboolean " !aram4tre " !aram4tre $escription NString
!aram4tre $isplaDGame $isplaDGame NString NString " !aram4tre " !aram4tres !aram4tres init!aram init!aram N9eb2nit!ara N9eb2nit!aramT mT
" !aram4tres !aram4tres large2con large2con et small2con small2con NString NString : nom nom $e l&image l&image " !aram4tre !aram4tre loa$OnStartup loa$OnStartup Nint : num#ro $&or$re $ans l&instanc l&instanciatio iation n
He(uestIispatcher " !aram4tre name NString : nom logi(ue, E utiliser $ans He(uestIispatcher " !aram4tre !aram4tre url!atterns url!atterns et 5alue NStringT NStringT : mapping mapping $u ser5let ser5let
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Or$re $es recherches " Si une correspon$ance e=acte e=iste, elle est prise " S&il D a une correspon$ance relati5e a5ec caract4re g#n#ri(ue
Si plusieurs, priorit# au plus long motif
" nfin recherche $es e=tensions $e fichiers
Formation Java Server Faces
Ce (u&on a cou5ert " e $#ploiement $es informations " es chemins $&acc4s " &annotation -9ebSer5let " Or$re $es recherches
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
L’application Web Les pages JSP
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " &architecture )S! " =emple $e )S! " a sDnta=e $es )S! " es $irecti5es )S!
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
20
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
&architecture )S! " 3ne page )S! est une page 67 $ans la(uelle apparaissent $es balises
intro$uisant $u )a5a
" E oU le Ser5let #tait $u )a5a retournant $u 67 " a page )S! est tra$uite runtime en un Ser5let par le conteneur " e Ser5let est ensuite compil# runtime " a pages )S! acc4$e $onc au mJme en5ironnement (ue le Ser5let
Formation Java Server Faces
=emple $e )S! " 3ne page $&e=tension .jsp par $#faut, E la racine $e l&application
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
21
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
a sDnta=e $es )S! " es scriplets sont les Vones enca$r#es par LW et WM " 2l D a $eu= tDpes $e scriplets
LWX e=pression ja5a WM : l&e=pression est #5alu#e, int#gr#e E la sortie LW e=pression ja5a WM : une collection $&e=pressions, pas $e sortie e=plicite
" a sortie pr#configur#e, r#f#rence $e tDpe ja5a=.ser5let.j$p.)sp9riter
Sous tDpe $e ja5a.io.9riter
" e fichier horloge.jsp correspon$ E l&3H
http://Lser5eur:portM/LapplicationM/horloge.jsp
" a correspon$ance peut Jtre mo$ifi#e Formation Java Server Faces
es $irecti5es )S! " es $irecti5es )S! param4trent globalement la page " Forme : LW- nom$e$irecti5e att8X5aleur attX5aleur WM " Iirecti5e page : les propri#t#s g#n#rales $e la page " Iirecti5e inclu$e : permet $&inclure le contenu $&un autre fichier,
comme un entJte
" Iirecti5e taglib : $#clarer une biblioth4(ue $e balises " es $irecti5es peu5ent apparaYtre n&importe oU $ans la page " 3ne $irecti5e peut apparaYtre plusieurs fois
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
22
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Iirecti5e page pour les sorties )S! " content7Dpe Nte=t/html: $#claration $u tDpe 2 (ue la page pro$uit " pagenco$ing : $#claration $e l&enco$age $es caract4res
" !eu5ent Jtre $#clar#s en une seule $irecti5e
Formation Java Server Faces
Iirecti5e page pour les langages utilis#s " language Nja5a: Sp#cifier le langage utilis# N5raiment utile * " is2gnore$ Nfalse: Ge pas utiliser =pression anguage " import : 2mporter $es classes )a5a
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
2*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Iirecti5e page pour le runtime " autoFlush Ntrue: 5i$age $u buffer automati(ue ou non " buffer N$#p. impl.: sp#cifie la taille minimum $u tampon " is7hrea$Safe Ntrue: sp#cifie si la page )S! peut g#rer plusieurs threa$s
en mJme temps
Formation Java Server Faces
Iirecti5e page pour les erreurs " isrror!age Nfalse : $#clare la page courante comme page $&erreur " error!age : $#clare la page $&erreur E utiliser
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
2+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Iirect Iirecti5e i5ess inclu$e inclu$e et tagli taglib b " 2nclu$e
+5ec file pour sp#cifier le fichier E inclure
" 7aglib
+5ec uri pour sp#cifier le nom $u fichier +5ec prefi= pour sp#cifier le pr#fi=e =ml
Formation Java Server Faces
Ce (u&on a co cou5 u5eert " &architecture )S! " =emple $e )S! " a sDnta=e $es )S! " es $irecti5es )S!
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
25
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
L’application Web JSP et Javabeans
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " I#finition $es )a5aBeans " 3sage $es )a5aBeans " es actions )S!
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
2,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
I#finition $e )a5aBeans " 3n )a5aBean est une classe )a5a (ui respecte (uel(ues con5entions
+5oir un constructeur sans argument 3tiliser 3tiliser le motif P )a5aBean )a5aBean propertD propertD Q pour e=poser les 5aleurs 5aleurs au client client
Formation Java Server Faces
3sage $es )a5aBeans " 3tiliser une action jsp:useBean
+5ec i$ : r#f#rence 5ers le bean +5ec class : nom $e la classe $u bean +5ec scope : port#e $u bean Npage, re(uest, session, session, application
a5ec jsp:get!ropertD Nattributs name, propertD " !uis r#cup#rer une propri#t# a5ec !ositionner une propi#t# propi#t# a5ec jsp:set!rop jsp:set!ropertD ertD N attributs attributs name, propertD, propertD, 5alue " !ositionner
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
27
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es actions )S! " +ction jsp:forwar$, pageX. H#alise un forwar$ 5ers une autre page " +ction jsp:inclu$e pageX H#alise un inclu$e, #5entuellement param#tr#
a5ec jsp:param
" +ction jsp:plugin permet $e solliciter une applet " +ction jsp:te=t permet $e g#n#rer $u te=te Npour " +ctions jsp:element, jsp:attribute et jsp:bo$D permettent $e g#n#rer $u
Formation Java Server Faces
Ce (u&on a cou5ert " I#finition $e )a5aBeans " 3sage $es )a5aBeans " es actions )S!
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
2
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
L’application Web Les balises JSP
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " es balises )S! stan$ar$s " a balise forach " a balise if
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
2
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es balises stan$ar$s " )S! $#finit $es balises " Stan$ar$ : pour toute page )S! " !our les $onn#es S% " !our le et la manipulation $e te=te " Ies manipulations $e chaYnes $e caract4res " G#cessite la $#claration $e la biblioth4(ue utilis#e
Formation Java Server Faces
a balise forach " !ermet l&it#ration
Sur une s#(uence $e nombres, a5ec un incr#ment
Sur un conteneur
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*0
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
a balise if " e corps $e la balise (ue si l&attribut test est #5alu# E 5rai
Formation Java Server Faces
Ce (u&on a co cou5 u5eert " es balises )S! stan$ar$ " a balise forach " a balise if
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*1
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
L’application Web Les balises personnalisées
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " Cr#ation $&une balise personnalis#e " I#claration $e la balise " 3tilisation $e la balise " Balise 5s )a5aBean
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*2
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Cr#ation $&une balise personnalis#e " 2mpl#menter ja5a=.ser5let.jsp.tage=t.)sp7ag " Ou bien h#riter $e ja5a=.ser5let.jsp.tage=t.Simple7agSupport " He$#finir $o7agN " crire le 67 correspon$ant
3tiliser super.get)spConte=tN.getOutN.printN
Formation Java Server Faces
I#claration $e la balise " Ians un fichier .tl$ " Fait le lien entre le nom $e la balise et la classe )a5a " !eut $#clarer $es attributs N$e balise
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
**
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
3tilisation $e la balise " I#clarer l&usage $e la biblioth4(ue $e balise
" 3tiliser a balise personnalis#e
Formation Java Server Faces
Balise 5s )a5aBean " es $eu= cherchent E s#parer le co$e )a5a $e la pr#sentation " a mise en Zu5re $es )a5aBean semble plus simple " es balises personnalis#es permettent une sDnta=e plus riche " es balises personnalis#es n&ont (ue la port#e $e page
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " Cr#ation $&une balise personnalis#e " I#claration $e la balise " 3tilisation $e la balise " Balise 5s )a5aBean
Formation Java Server Faces
La technologie JSF Une application JSF
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*5
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " %u&est'ce (u&une application )SF * " 3ne application )SF simple " e mo$4le $e l&interface utilisateur " e mo$4le $e ren$u " e mo$4le $e con5ersion " e mo$4le $#nement " e mo$4le $e 5ali$ation " e mo$4le $e na5igation Formation Java Server Faces
%u&est'ce (u&une application )SF * " )SF est un framewor1 $e composants c[t# ser5eur pour construire $es
applications 9eb )a5a
" )SF contient : une +!2 pour g#rer les #5#nements, la 5ali$ation, et la
con5ersion $es $onn#es, $#finir la na5igation, supporter l&internationalisation 7 $es balises pour int#grer ces composants $ans les pages 9eb et les connecter E $es objets c[t# ser5eur
" )SF permet $&all#ger les t\ches $e construction $e l&application : cr#er
les pages web, placer les composants $ans la page, lier les composants au= $onn#es, g#rer les #5#nements, sau5er et restaurer les #tats $e l&application, r#utiliser les composants
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
3ne application )SF simple " =emple a5ec pages web a5ec Facelets et 8 bean manag#
" +pplication compil#e lors $u premier acc4s E in$e=.=html " 3n arbre $e composants est plac# $ans FacesConte=t, puis rempli et li# E l&objet
$e tDpe 6ello
" a 5ue est ren$ue au client " &arbre est $#truit Formation Java Server Faces
e mo$4le $e l&interface utilisateur " 3n composant est graphi(ue ou non " 3n composant graphi(ue peut Jtre simple ou compos# " &architecture )SF fournit :
$es ja5a=.faces.component.32Component sp#cifiant ltat et le comportement graphi(ue un mo$4le $e ren$u un mo$4le $e con5ersion (ui $#finit comment enregistrer les con5ertisseurs sur les composants un mo$4le $#nements pour g#rer les #5#nements sur les composants un mo$4le $e 5ali$ation pour enregistrer les 5ali$ateurs sur les composants
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*7
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es composants graphi(ues " es composants sont $#ri5#s $e ja5a=.faces.component.32Component " a classe 32ComponentBase fournit un comportement par $#faut " 32Column : une colonne $ans un 32Iata " 32Comman$ : un contr[le (ui $#clenche $es actions " 32Iata : un lien 5ers les $onn#es Nun ja5a=.faces.mo$el.Iatao$el " 32Form : un formulaire " 32raphic : pour afficher une image
Formation Java Server Faces
es composants graphi(ues " 322nput : une entr#e, sous classe $e 32Output " 32essage : un message $&erreur localis# Net 32essages " 32Outcome7arget : un lien, ou bouton " 32!anel : gestion $es composants " 32Select R : gestion $e s#lections " 32?iewHoot : racine $es composants $ans la 5ue " es composants impl#mentent $es interfaces $e comportement :
+ctionSource, $itable?alue6ol$er, State6ol$er, GamingContainers,
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
e mo$4le $e ren$u " 3ne classe $e ren$u s#par#e $es classes $e composants :
+$apter le ren$u E un client ou un tDpe $e client Changer l&apparence $es composants sur une page
" 3n P ren$er 1it Q correspon$ E un tDpe $e client
3n ensemble $e classes Hen$erer pour cha(ue composant e ren$u est choisi a5ec la balise : comman$Button 5s comman$in1
Formation Java Server Faces
e mo$4le $e con5ersion " 3n composant peut Jtre associ# E un objet c[t# ser5eur " &application 5oit les $onn#es $e $eu= fa]ons
a 5ue mo$4le : les tDpes $e $onn#es a 5ue pr#sentation : une fa]on $e lire ou mo$ifier les $onn#es
" es con5ersions sont automati(ues " !our changer les con5ersions stan$ar$s, enregistrer une sous'classe $e
ja5a=.faces.con5ert.Con5erter sur un 32Output
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
e mo$4le $#nements " Conforme au mo$4le classi(ue $es )a5aBeans " es #5#nements sont :
es #5#nements applicatifs "
i#s au= actions : #mis par les boutons et les liens
"
i#s au= changements $e 5aleur : #mis par 322nput
es #5#nements sDst4mes "
Correspon$ent au cDcle $e 5ie $e l&application
es #5#nements $e $onn#es "
3ne ligne $e 32Iata (ui change
Formation Java Server Faces
e mo$4le $e 5ali$ation " a 5ali$ation est e=#cut#e a5ant la mise E jour $es $onn#es " Ies classes stan$ar$s, $#ri5ant $e ja5a=.faces.5ali$ator.?ali$ator " Ies balises pour la mise en place $ans le html " !ossibilit# $e $#clarer un 5ali$ateur (ui s&appli(ue pour tous les input " !ossibilit# $e cr#er son propre 5ali$ateur
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+0
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
e mo$4le $e na5igation " a na5igation est implicite ou $#finie par l&utilisateur " Ga5igation implicite par l&attribut action
" Ga5igation $#finie par l&utilisateur $ans faces'config.=ml " I#clenchement $&une m#tho$e
Formation Java Server Faces
Ce (u&on a cou5ert " %u&est'ce (u&une application )SF * " 3ne application )SF simple " e mo$4le $e l&interface utilisateur " e mo$4le $e ren$u " e mo$4le $e con5ersion " e mo$4le $#nement " e mo$4le $e 5ali$ation " e mo$4le $e na5igation Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+1
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
La technologie JSF La navigation
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " a na5igation implicite " a na5igation $#finie $ans le =ml " a na5igation contr[l#e par les beans
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+2
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
a na5igation implicite " a page =html contient le nom $e la page cible " &attribut action r#f#rence par $#faut un nom " e ser5eur ajoute P =html Q comme e=tension pour trou5er la page
" Ians cet e=emple, reponse.=html est une page accessible
Formation Java Server Faces
a na5igation $ans un fichier =ml " a configuration $e la na5igation hors $es pages =html " 3n nom P logi(ue Q est utilis# $ans la page =html " Ce nom logi(ue associ# E l&i$ $e la 5ue
Correspon$ E une r4gle
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
a na5igation contr[l#e par les beans " a comman$e est en5oD#e E un bean " +ppel $&une m#tho$e $u bean " e retour $u bean correspon$ au nom logi(ue utilis# ensuite
Formation Java Server Faces
Ce (u&on a cou5ert " a na5igation implicite " a na5igation $#finie $ans le =ml " a na5igation contr[l#e par les beans
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
++
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
La technologie JSF Le ccle de vie
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " He(uJte initiale ou postbac1 " a classe FacesConte=t " &attribut imme$iate
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+5
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
He(uJte initiale et postbac1 " es $eu= #tapes essentielles sont
=ecute "
Sub$i5is#e en plusieurs #tapes : Hestore ?iew, +pplD He(uest,
Hen$er "
Hen$u $e la r#ponse 5ers le client
Formation Java Server Faces
a classe FacesConte=t " Gom complet ja5a=.faces.conte=t.FacesConte=t " Contient la 5ue E ren$re au client " FacesConte=t.ren$erHesponse passe $irectement E ltape $e ren$ue
Cas $e la re(uJte initiale
" FacesConte=t.responseComplete #5ite ltape $e ren$u
Cas $&un passage E une application sans composant
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
&attribut imme$iate " Cet attribut 5a forcer la 5ali$ation, les #5#nements et les con5ersions E
Jtre #5alu#s $ans la phase +pplD He(uest
" 2l faut la coh#rence entre la 5aleur $e cet attribut sur un champ $&entr#e
et sur les actions correspon$antes
" !ar e=emple, si un bouton a cet attribut E 5rai, il est trait# a5ant (ue les
$onn#es $es champs ne soient mises E jour
Formation Java Server Faces
Ce (u&on a cou5ert " He(uJte initiale ou postbac1 " a classe FacesConte=t " &attribut imme$iate
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+7
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Les !acelets Une application Facelets
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " es facelets " e cDcle $e 5ie $e l&application " =emple
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es facelets " angage $#claratif pour construire $es 5ues )SF
3tilisation $e =html Support $e biblioth4(ues $e balises Nfacelets, jsf, jstl Support $e =pression anguage N o$4les pour les composants et les pages
" Conformit# au =html, e=tension $e fichier en =html " es biblioth4(ues sont support#es 5ia les espaces $e nommage =ml
Formation Java Server Faces
es biblioth4(ues support#es " Balises )SF Facelets, pr#fi=e ui:, e=emple ui:insert " Balises )SF 67, pr#fi=e h:, e=emple h:hea$ " Balises )SF Core, pr#fi=e f:, e=emple f:actionistener " Balises elements, pr#fi=e jsf:, e=emple jsf:i$ " Balises attributs, pr#fi=e p:, e=emple p:tDpe " Balises composite, pr#fi=e cc:, e=emple cc:interface " Balises )S7 Core, pr#fi=e c:, e=emple c:forach " Balises fonctions, pr#fi=e fn:, e=emple fn:to3pperCase Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
e cDcle $e 5ie $e l&application " premi4re re(uJte, un 32?iewHoot est cr## et plac# $ans le FacesConte=t " 32?iewHoot est remplie a5ec les composants " a 5ue est ren$ue au client " tat est conser5# " e client interagit a5ec la 5ue, con$uisant E la cr#ation $&une nou5elle
ou la restauration $e l&ancienne
Formation Java Server Faces
=emple $&application " Cr#er les beans manag#s " Cr#er les pages a5ec les balises $e composants " I#finir la na5igation " Configurer l&application " I#clarer les beans manag#s
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
50
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es beans manag#s " Cha(ue page est connect#e E un bean " !lusieurs pages peu5ent se connecter sur le mJme bean " +nnot# -Game$, pour Jtre utilis# 5ia " +nnot# $&une port#e particuli4re, pour Jtre utilisable $ans la re(uJte, la
session, l&application
Formation Java Server Faces
es pages $e composants " +jouter $es composants sur la page " es connecter au= 5aleurs $e bean et enregistrer con5ertisseurs, etc
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
51
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Configurer l&application " Configurer le ser5let $ans web.=ml " !age $e $#marrage $e l&application " Configuration $e faces'config.=ml
Formation Java Server Faces
Ii5ers " 3ne page template est un mo$4le r#current $ans l&application
I#fini a5ec ui:insert et utilis# a5ec ui:$efine
" 2l est possible $e $#finir $es composants r#utilisables
I#fini a5ec composite:interface, composite:implementation,
" es contrats sont $es param#trages $e l&application
!lusieurs parties $e l&application ont $es contrats $iff#rents
" es #l#ments et attributs P pass'through Q
n5oD#s $irectement au client en tant (ue 67>
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
52
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " es facelets " e cDcle $e 5ie $e l&application " =emple
Formation Java Server Faces
Les !acelets "onstruire une application Facelets
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
5*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " !r#parer un template " Cr#er les parties " Cr#er $es composites
Formation Java Server Faces
!r#parer un template " r\ce E la balise ui:insert " Iirectement a5ec GetBeans
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
5+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Cr#er les parties " es clients $u template re$#finissent les Vones " r\ce au= balises
ui:composition pour intro$uire le template utilis# ui:$efine pour placer $u contenu
Formation Java Server Faces
Cr#er $es composites " I#finir les attributs $u composant
" !uis composer le contenu
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
55
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
3tiliser ce composite " H#f#rencer le fichier sau5er $ans un r#pertoire
" !uis utiliser ce composant comme les autres
Formation Java Server Faces
Ce (u&on a cou5ert " !r#parer un template " Cr#er les parties " Cr#er $es composites
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
5,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Les !acelets Les balises #$%L&
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " es #l#ments pass'through " es attributs pass'through " =emples
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
57
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es #l#ments pass'through " 3tiliser les balises 67> " es g#rer comme $es #l#ments 32Component " ettre un attribut sp#cifi(ue permettant le traitement
Formation Java Server Faces
es attributs pass'through " es attributs pass'through sont en5oD#s $irectement au na5igateur " G&e=istent pas sur les #l#ments )SF
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
5
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
=emples alise
"dentiiant
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
Ce (u&on a cou5ert " es #l#ments pass'through " es attributs pass'through " =emples
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
5
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
('pression Language La snta'e de (L
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " ?ue g#n#rale " 5aluation imm#$iate " 5aluation $iff#r#e
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,0
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
?ue g#n#rale " !ermet la communication entre la couche 9eb et les beans manag#s " a couche 9eb X la couche $e pr#sentation " es beans manag#s X la couche $e logi(ue $e l&application " est utilis# par :
)S! )SF CI2
Formation Java Server Faces
Ce (ue permet " =pressions simples pour acc#$er au= $onn#es $es beans " ire $es $onn#es contenues $ans $es beans " crire $es $onn#es $ans $es beans " 2n5o(uer $es m#tho$es )a5a " H#aliser $es op#rations arithm#ti(ues, logi(ues, etc " Construire $es collections $&objets et D in5o(uer $es m#tho$es
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,1
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
5aluation imm#$iate " &e=pression est #5alu#e $4s (ue la page est ren$ue " 3tilise la sDnta=e ^_` " !as forc#ment tr4s prati(ue, #tant $onn# le cDcle $e 5ie $es pages " 3tilis# pour $es $onn#es stati(ues ou fi=es $urant l&application
Formation Java Server Faces
5aluation $iff#r#e " &e=pression utilise la sDnta=e _` " e moment $e laluation 5a $#pen$re $e l&en$roit
" He(uJte initiale : lecture $es nom et mot $e passe " !ostbac1 : positionnement $es 5aleurs
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,2
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " ?ue g#n#rale " 5aluation imm#$iate " 5aluation $iff#r#e
Formation Java Server Faces
('pression Language Les e'pressions de valeurs
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " =pression g#n#rale " H#f#rencement $&objets " H#f#rencement $e propri#t#s " es litt#rau= " es param4tres $e m#tho$es " 3tilisation $es e=pressions $e 5aleurs
Formation Java Server Faces
=pression g#n#rale " es e=pressions $e 5aleurs peu5ent Jtre r'5alue ou l'5alue
3tilis#es en lecture ou en #criture
" es e=pressions imm#$iates ne sont (ue r'5alue " +5ec )SF :
He(uJte initiale : lit l&e=pression !ostbac1 : #5entuellement positionnement $e la 5aleur
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
H#f#rencement $&objets " &e=pression $#marre sur un objet $e haut'ni5eau :
Ies param4tres, 5ariables , beans manag#s, objets implicites, classes
" =pression E base $e ^_objet` " 2l est possible $e changer la fa]on $ont le ser5eur retrou5e l&objet " Ians les cas $es constantes $num#r#
3tiliser $irectement le nom $e la constante, pr#fi=# $u nom $e l&enum
Formation Java Server Faces
H#f#rencement $e propri#t#s " 3tiliser la notation $e s#lection P . Q ou P T Q " !ar e=emple :
" 2l est possible $&acc#$er au= static sur $es classes : Boolean.F+S " a sDnta=e P T Q permet $&acc#$er au i4me #l#ment $&une collection " !our les maps, les $eu= sDnta=es sont possibles
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,5
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es litt#rau= " %uel(ues litt#rau= sont pr#$#finis
Bool#ens : true, false, ntiers : comme )a5a Flottants : comme )a5a 7e=te : entre $ouble ou simple (uotes Gull : null
Formation Java Server Faces
es param4tres $e m#tho$es " es sDnta=es P . Q ou P T Q peu5ent Jtre utilis#es " +jouter $es parenth4ses
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
3tilisation $es e=pressions $e 5aleurs " +5ec le ^, $ans les te=tes stati(ues et tous les attributs (ui l&acceptent " aluation se fera au ren$u $e la page " Si plusieurs e=pressions se sui5ent, elles sont #5alu#es $e gauche E
$roite
" 3ne e=pression peut contenir l&op#rateur $e concat#nation
Formation Java Server Faces
Ce (u&on a cou5ert " =pression g#n#rale " H#f#rencement $&objets " H#f#rencement $e propri#t#s " es litt#rau= " es param4tres $e m#tho$es " 3tilisation $es e=pressions $e 5aleurs
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,7
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
('pression Language Les e'pressions de méthodes
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " SDnta=e g#n#rale " amb$a e=pressions " Op#rations sur $es collections " =emples $&op#rateurs " ots r#ser5#s
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
SDnta=e g#n#rale " es e=pressions $e m#tho$es sont $iff#r#es " +cc4$e E $es m#tho$es publi(ues $&un bean " 3tilise la sDnta=e P . Q ou bien P T Q " es e=pressions $e m#tho$es ne sont utilisables (ue pour les attributs " 3ne seule e=pression $e m#tho$e possible
!as $e concat#nation
" Ou sous la forme $&un simple te=te
Formation Java Server Faces
es e=pressions lamb$a " (ui5alent E une e=pression $e 5aleur a5ec param4tres " SDnta=e i$enti(ue E )a5a A " !eut Jtre utilis#e en param4tre $e m#tho$e
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Op#rations sur les collections " Cr#ation $e set a5ec _ `, $e liste a5ec T, $e map a5ec _a:b` " es stream ja5a et certaines $e leurs op#rations sont applicables en
filter, map, min, re$uce,
Formation Java Server Faces
=emples $&op#rateurs " 2l est possible $&appli(uer $es op#rateurs
+rithm#ti(ues ogi(ues Helationels Con$itionel
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
70
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
ots r#ser5#s " Certains mots r#ser5#s ne peu5ent pas Jtre utilis#s en :
+n$, or, not, e(, ne
Formation Java Server Faces
Ce (u&on a cou5ert " SDnta=e g#n#rale " amb$a e=pressions " Op#rations sur $es collections " =emples $&op#rateurs " ots r#ser5#s
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
71
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
JSF dans les pages A)outer des composants
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " ?ue g#n#rale " es composants $e la biblioth4(ue 67 " es attributs habituels " es formulaires
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
72
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
?ue g#n#rale " 3ne page )SF tDpi(ue contient
es espaces $e nommage $#clarant les biblioth4(ues utilis#es es $#finitions $e entJte et corps $e page 3n formulaire
" !our construire la page )SF, il faut au moins la biblioth4(ue 67 et la
biblioth4(ue core.
" 3n pr#fi=e sera attribu# E chacune $e ces biblioth4(ues, en g#n#ral
P h: Q et P f: Q
Formation Java Server Faces
es composants $e la biblioth4(ue 67 " Hepr#sentation $es #l#ments 67 " + l&int#rieur $&un formulaire " 4re les entr#es utilisateur, pour la saisie ou la restitution
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
7*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es composants $e la biblioth4(ue 67 alise
h:commandButton
Soumettre un formulaire
h:commandLink
Lien
h:form
Dfinir un formulaire
h:!raphic"ma!e
#fficher une ima!e
h:input$ile
%our char!er un fichier
h:inputText
&ntrer un texte
h:inputSecret
&ntrer un mot de passe
h:input'idden
Cacher une (ariable dans la pa!e
h:inputText#rea
&ntrer un texte multili!ne
Formation Java Server Faces
es composants $e la biblioth4(ue 67 alise
h:outputLabel
#fficher un texte
h:outputText
#fficher un texte
h:messa!e
#fficher un messa!e
h:panel)rid
#fficher une table
h:panel)roup
)rouper des composants
h:select*ne+enu
%ermettre la slection d,un lment
h:selectBooleanCheckbox Chan!er la (aleur d,une checkbox h:dataTable
#fficher une table de donnes
h:column
-ne colonne dans la table
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
7+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es attributs habituels Attriut
bindin!
Cre un lien (ers une proprit de bean
id
"dentifie le composant
immediate
#ppli.ue les (nements d/s la re.u0te
rendered
Spcifie une condition pour rendre le composant
style
Spcifie une CSS
styleClass
Spcifie une classe de style
(alue
Spcifie une (aleur 1&L2
Formation Java Server Faces
es formulaires " e formulaire contient les composants (ui pr#sentent les $onn#es ou
(ui ser5ent E entrer les $onn#es
" 3tiliser la balise Lh:formM " !lusieurs formulaires sont possibles $ans une page, mais seules les
$onn#es li#es E ce formulaire seront en5oD#es lors $u postbac1 $e soumission
" e formulaire ne propose aucune $isposition $es #l#ments $ans la page
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
75
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " ?ue g#n#rale " es composants $e la biblioth4(ue 67 " es attributs habituels " es formulaires
Formation Java Server Faces
JSF dans les pages A)outer un composant te'te
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
7,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " es $iff#rents tDpes $e te=tes " es te=tes en entr#e " es te=tes en sortie " es composants input7e=t et inputSecret " es composants outputabel et outputin1 " 3tiliser outputFormat
Formation Java Server Faces
es $iff#rents tDpes $e te=tes " !ar composants te=tes non enten$ons $es composants (ui permettent
$e 5oir ou $$iter $u te=te
" es labels permettent juste $&afficher $u te=te " es champs permettent $$iter $u te=te
3ni ou multilignes
" es champs $e mots $e passe
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
77
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es te=tes en entr#e " Iiff#rentes balises sont possibles :
h:input6i$$en cache une 5ariable $ans la page h:inputSecret #$ite une ligne $e te=te, remplac# par $es ast#ris(ues h:input7e=t #$ite une ligne $e te=te h:input7e=t+rea #$ite plusieurs lignes $e te=te
"
Formation Java Server Faces
es attributs $es champs en entr#e
con5erter i$entifie un con5ertisseur con5erteressage sp#cifie un message $&erreur li# au con5ertisseur $ir in$i(ue la $irection $criture ltr ou rtl label i$entifie le composant $ans les messages $&erreur lang sp#cifie le co$e langage re(uire$ remplissage obligatoire ou non re(uire$essage message li# E l&erreur $e ne pas a5oir rempli le champ 5ali$ator sp#cifie le bean 5ali$eur $e ce champ te=te N 5ali$atoressage sp#cifie le message li# 5alueChangeistener sp#cifie un bean traitant le contenu $u champ
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
7
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es te=tes en sortie " Iiff#rentes balises sont possibles :
h:outputFormat affiche un message format# h:outputabel affiche un label lecture seule h:outputin1 affiche un lien 5ers une autre page, sans action h:output7e=t affiche un te=te $&une ligne
Formation Java Server Faces
es composants input7e=t et inputSecret " !our saisir un te=te
" !our saisir un mot $e passe
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
7
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es composants outputabel et outputin1 " !our cr#er un label (ui illustre et focus sur un input
" !our faire un lien
Formation Java Server Faces
3tiliser outputFormat " Formater un te=te " 3tilise le format $e ja5a.te=t.essageFormat
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
0
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " es $iff#rents tDpes $e te=tes " es te=tes en entr#e " es te=tes en sortie " es composants input7e=t et inputSecret " es composants outputabel et outputin1 " 3tiliser outputFormat
Formation Java Server Faces
JSF dans les pages A)outer un composant commande
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " H[les $es composants $e comman$e " Hen$re un bouton " Hen$re un lien
Formation Java Server Faces
H[les $es composants $e comman$e " H#aliser $es actions, soumettre un formulaire ou na5iguer " h:comman$Button est ren$u comme un bouton " h:comman$in1 est ren$u comme un lien " Ces composants poss4$ent attributs remar(uables :
action chaYne $e caract4re ou e=pression pour $#terminer la $estination actionistener pointe sur une m#tho$e $#clench#e lors $e l&action
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
2
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Hen$re un bouton " 3tiliser h:comman$Button " Hen$u sous la forme $e Linput tDpeX submit " !our soumettre un formulaire " I#clenche une action, plusieurs fa]ons $e r#aliser la na5igation
Formation Java Server Faces
Hen$re un lien " 3tiliser h:comman$in1 " Hen$u sous la forme $&un LaM " 2l est possible $e contenir un Lh:output7e=tM " e ren$u $e ce composant g#n4re $u ja5ascript
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " H[les $es composants $e comman$e " Hen$re un bouton " Hen$re un lien
Formation Java Server Faces
JSF dans les pages A)outer un composant de sélection
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " es composants $e s#lection " es composants E s#lection uni(ue " es composants E s#lection multiple " +fficher le r#sultat $e la s#lection
Formation Java Server Faces
es composants $e s#lection " !our s#lectionner $ans une liste, $ans un ensemble $e choi= " S#lection uni(ue ou multiple " a liste peut Jtre stati(ue ou $Dnami(ue " Hen$u par chec1bo=, ra$iobutton, $rop'$own menu ou listbo=
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
5
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es composants E s#lection uni(ue " h:selectBooleanChec1bo= ren$ une chec1bo=, correspon$ E un bool#en " h:selectOneHa$io ren$ un ensemble $e ra$iobutton " h:selectOneenu ren$ une liste scrollable " h:selectOneistBo= ren$ une liste non scrollable
Formation Java Server Faces
es composants E s#lection multiple " h:selectanDChec1bo= $onne un ensemble $e chec1bo= " h:selectanDenu $onne un menu " h:selectanDistbo= $onne une liste
" es s#lections multiples sont possibles " es items sont plac#s a5ec f:select2tem ou f:select2tems, comme
pr#c#$emment
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
+fficher le r#sultat $e la s#lection " !asser par le bin$ing pour lier les composants au= beans et in5ersement " H#cup#rer la 5aleur s#lectionn#e par l&attribut 5alue
Formation Java Server Faces
Ce (u&on a cou5ert " es composants $e s#lection " es composants E s#lection uni(ue " es composants E s#lection multiple " +fficher le r#sultat $e la s#lection
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
7
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
JSF dans les pages A)outer des composants liés au' données Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " Objectifs $e ces composants " Sources $e $onn#es " +ttributs optionnels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Objectifs $e ces composants " Hepr#senter une collection $&objets " Sous la forme $&une table 67 " 3tiliser le composant h:$ata7able " Ioit Jtre utilis# a5ec h:column, pour sp#cifier les caract#risti(ues $e
cha(ue colonne affich#e
Formation Java Server Faces
Sources $e $onn#es " a source $e $onn#es peut Jtre
3ne collection $e beans 3n bean simplement 3n objet ja5a=.faces.mo$el.Iatao$el 3n objet ja5a.s(l.HesultSet 3n objet ja5a=.ser5let. S(l.Hesult 3n objet ja5a=.s(l.HowSet
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
+ttributs optionnels " Ians h:$ata7able , rows et first sp#cifient le nombre et la premi4re ligne " es stDles CSS :
captionClass titre $e la table columnClasses les colonnes footerClass le bas $e page hea$erClass le haut $e page rowClasses les lignes stDleClass le stDle $e la table
Formation Java Server Faces
Ce (u&on a cou5ert " Objectifs $e ces composants " Sources $e $onn#es " +ttributs optionnels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
0
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
JSF dans les pages A)outer des composants divers
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " +fficher une image " +fficher un message " ettre en place un mar(ue'page
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
+fficher une image " e composant est h:graphic2mage
" H#f#rence $irecte 5ers une image " Ou bien utiliser les ressources web
Formation Java Server Faces
+fficher un message " 3tilis#s lors $es #checs $e 5ali$ation ou formatage " Composant h:message pour un composant sp#cifi(ue " Composant h:messages pour la page enti4re
" !ermet $e placer les messages $&erreur
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
2
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
ettre en place un mar(ue'page " es composants h:lin1 ou h:button " !ermettent un lien 5ers une page " 3tilisent le mapping faces'config
Formation Java Server Faces
Ce (u&on a cou5ert " +fficher une image " +fficher un message " ettre en place un mar(ue'page
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
JSF dans les pages *rouper les composants
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " rouper en table " rouper $es composants
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
rouper en table " 3tiliser h:panelri$, ren$u comme un 7+B " Sp#cifier
le nombre $e colonnes, titre, etc Ies stDles css pour les $iff#rentes parties $e la table !eut contenir entJte et bas $e page
Formation Java Server Faces
rouper $es composants " 3tiliser h:panelroup pour grouper $es composants " 2ls apparaissent comme un seul composant " Hen$u sous la forme $e $i5 ou $e span
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
5
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " rouper en table " rouper $es composants
Formation Java Server Faces
"onverters etc Les convertisseurs standards
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " H[les et usage $es con5ertisseurs " Iate7imeCon5erter " GumberCon5erter
Formation Java Server Faces
H[les et usages $es con5ertisseurs " 7ransformer une chaYne $e caract4res en un objet " t 5is 5ersa
" Stan$ar$s : BigIecimal, Big2nteger, Boolean, BDte, Iate7ime, Iouble
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
7
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Iate7imeCon5erter " Cible le tDpe ja5a.util.Iate " G#cessite la $#finition $&un stDle Nformat
" !ropose les attributs
bin$ing, $ateStDle, for, locale, pattern, timeStDle, timeKone, tDpe
Formation Java Server Faces
GumberCon5erter " 3tiliser le composant
h:con5ertGumber
" +5ec les attributs
bin$ing
ma=FractionIigits, ma=2ntegerIigits, min' pattern tDpe
currencDCo$e for grouping3se$ integerOnlD locale
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " H[les et usage $es con5ertisseurs " Iate7imeCon5erter " GumberCon5erter
Formation Java Server Faces
"onverters etc Les listeners
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " H[le et int#rJt $es listeners " #rer les changements $e 5aleurs " #rer les actions
Formation Java Server Faces
H[le et int#rJt $es listeners " !eut Jtre une classe ou une m#tho$e " 3tiliser les attributs 5alueChangeistener ou actionistener pour une
m#tho$e
" 3tiliser les balises f: correspon$antes
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
100
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
#rer les changements $e 5aleurs " 3tilis# a5ec les attributs :
tDpe pour $onne le nom $e la classe $u listener ?alueChangeistener bin$ing pour r#f#rencer un objet (ui impl#mente
Formation Java Server Faces
#rer les actions " 3tiliser f:actionistener , a5ec les attributs tDpe et bin$ing " Cas particulier $e f:set!ropertD+ctionistener pour gar$er une r#f#rence
+ttributs 5alue et target
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
101
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " H[le et int#rJt $es listeners " #rer les changements $e 5aleurs " #rer les actions
Formation Java Server Faces
"onverters etc Les validateurs
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
102
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " H[le et objectifs $es 5ali$ateurs " ?ali$er une 5aleur " 3tiliser les balises $e 5ali$ation
Formation Java Server Faces
H[le et objectifs $es 5ali$ateurs " !our 5ali$er les saisies utilisateur " Bean?ali$ator bean 5ali$ateur pour le composant " IoubleHange?ali$ator limites $e 5aleurs pour les flottants " ength?ali$ator limites $e 5aleurs pour les chaYnes " ongHange?ali$ator limites $e 5aleurs pour les entiers " Hege=?ali$ator correspon$ance sur une e=pression r#guli4re " He(uire$?ali$ator 5#rifie la pr#sence $&une 5aleur
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
10*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
?ali$er une 5aleur " !lusieurs possibilit#s
3tiliser les attributs $ans le tag 3tiliser l&attribut 5ali$ator pour cibler une m#tho$e $e 5ali$ation ncapsuler une balise $e 5ali$ation et positionner 5ali$ator2$
" Ge peut Jtre utiliser (ue sur les composants (ui permettent l$ition $e
5aleurs
Formation Java Server Faces
3tiliser les balises $e 5ali$ation " +5ec $es attributs
" +5ec $es balises imbri(u#es
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
10+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
=pression r#guli4re " 3ne e=pression r#guli4re peut permettre $e 5#rifier
ots $e passe, email, t#l#phones,
Formation Java Server Faces
Ce (u&on a cou5ert " H[le et objectifs $es 5ali$ateurs " ?ali$er une 5aleur " 3tiliser les balises $e 5ali$ation
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
105
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Les beans managés *énéralités
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " es liaisons entre composant et bean " =emple $e liaisons
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
10,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
es liaisons entre composant et bean " 3n composant peut Jtre li# par sa 5aleur ou par son instance " !ar la 5aleur suppose $&affecter l&attribut 5alue
a 5aleur est $ans le composant
" !ar l&instance, il faut utiliser bin$ing
a 5aleur est $ans le bean
Formation Java Server Faces
a liaison $e P 5alue Q " a 5aleur est port#e par le composant
a page a tout contr[le sur le composant 2l n&D a pas $e $#pen$ance $e la page 5ers )a5a es con5ersions inter5iennent $e mani4re transparentes
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
107
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
a liaison $e P bin$ing Q " es attributs $u composant peu5ent Jtre mo$ifi#s par le bean
+cc4s 5ia la programmation applicati5e e bean instancie le composant
" 3tilis#e lors(ue )a5a a besoin $e mo$ifier les attributs (ui comman$ent
le ren$u $es composants
Formation Java Server Faces
=emples $e laisons " es liaisons par 5aleur peu5ent Jtre plus comple=es (u&un acc4s E une
propri#t# $e bean
=pression bool#enne 3ne propri#t# 5enant $&un param4tre 3ne propri#t# $e bean 3ne 5aleur $ans un tableau 3ne 5aleur $ans une collection 3ne propri#t# $&un objet $ans une collection
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
10
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " es liaisons entre composant et bean " =emple $e liaisons
Formation Java Server Faces
Les beans managés Lier les valeurs
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
10
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " ise en Zu5re " iaison 5ers les objets implicites
Formation Java Server Faces
ise en oeu5re " !ostionner l&attribut 5alue
" e bean manag# peut Jtre param#tr# aussi $ans un fichier =ml
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
110
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
iaison 5ers un objet implicite " a 5aleur peut pointer 5ers $es objets implicites
" es objets implicites sont :
facesConte=t, application, init!aram, session, 5iew, component, cc, re(uest, applicationScope, sessionScope, 5iewScope, re(uestScope, param?alues, hea$er?alues, coo1ie, resource
Formation Java Server Faces
Ce (u&on a cou5ert " ise en Zu5re " iaison 5ers les objets implicites
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
111
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Les beans managés Lier les instances
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " 2nt#rJt " a laison $es con5ertisseurs, listeners et 5ali$ateurs
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
112
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
2nt#rJt " ier les instances supposent (ue le bean cr#e le composant " e bean acc4$e au= attributs $u composant
Formation Java Server Faces
a liaison $es con5ertisseurs " +5ec l&attribut bin$ing, lier la propri#t# $u bean au con5ertisseur etc " e bean poss4$e alors l&acc4s au con5ertisseur etc
es attributs peu5ent Jtre mo$ifi#s
" 2l faut (ue le con5ertisseur soit imbri(u#
+5ec l&attribut bin$ing
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
11*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " 2nt#rJt " a laison $es con5ertisseurs, listeners et 5ali$ateurs
Formation Java Server Faces
A)a' et JSF *énéralités
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
11+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " ?ue $&ensemble " +ja= $ans )SF " +ja= $ans les facelets
Formation Java Server Faces
?ue $&ensemble " es interactions peu5ent Jtre asDnchrones " e client peut r#cup#rer $es informations sans interf#rer a5ec le reste $e
la page
" a r#ponse $u ser5eur est fournie sous la forme $e
+utre possibilit# en )SOG
" +5antages atten$us
?ali$ation $es formulaires en temps r#el Fonctionnalit#s nou5elles ise E jour partielle
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
115
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
+ja= $ans )SF " !our utiliser +ja= $ans )SF
+jouter le ja5ascript $ans l&application 3tiliser la biblioth4(ue built'in
" a biblioth4(ue built'in peut Jtre utilis#e $ans le co$e $es beans " es fonctionnalit#s peu5ent Jtre #ten$ues " a balise est f:aja=
Formation Java Server Faces
+ja= $ans les facelets " 3tiliser f:aja= $ans un composant stan$ar$
" +5ec $es attributs
ren$er in$i(ue les composants E ren$re e=ecute in$i(ue les composants E e=#cuter onerror, one5ent $onnent les noms $es fonctions js (ui g4rent ces cas
" 3tiliser le ja5ascript jsf.aja=.re(uestN
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
11,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " ?ue $&ensemble " +ja= $ans )SF " +ja= $ans les facelets
Formation Java Server Faces
A)a' et JSF (nvoer une re+u,te A)a'
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
117
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " 3tiliser l&attribut e5ent " 3tiliser l&attribut e=ecute " 3tiliser l&attribut imme$iate " 3tiliser l&attribut listener
Formation Java Server Faces
3tiliser l&attribut e5ent " es 5aleurs possibles sont clic1, 1eDup, mouseo5er, focus, blur " !ar $#faut, correspon$ance a5ec l#nement associ# au composant
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
11
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
3tiliser l&attribut e=ecute " I#finit le composant E e=#cuter par le ser5eur " !lusieurs composants peu5ent Jtre list#s " a 5aleur $e cet attribut est
e nom Ni$ $&un composant es 5aleurs -this, -all, -none, -form
Formation Java Server Faces
3tiliser l&attribut imme$iate " !ar $#faut, 5aut false " !ermet $&anticiper le traitement sur ce composant
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
11
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
3tiliser l&attribut listener " I#crit une m#tho$e E $#clencher " Correspon$ E l#nement pr#5u par e5ent " !eut Jtre accompagn# $e ren$er pour sp#cifier le composant E
remettre E jour
Formation Java Server Faces
Ce (u&on a cou5ert " 3tiliser l&attribut e5ent " 3tiliser l&attribut e=ecute " 3tiliser l&attribut imme$iate " 3tiliser l&attribut listener
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
120
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
A)a' et JSF *érer les erreurs
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " Sui5re les #5#nements " #rer les erreurs
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
121
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Sui5re les #5#nements " &attribut E utiliser est one5ent " a 5aleur est le nom $&une m#tho$e ja5ascript " a m#tho$e sera appel#e E cha(ue #tape aja=
sa5oir begin, complete, success
" a fonction ja5ascript sera appel#e a5ec une $onn#e
!ropri#t#s response'7e=t'Co$e, source, status, tDpe
Formation Java Server Faces
#rer les erreurs " 3tilise l&attribut onerror " a 5aleur est une fonction ja5ascript " Cette fonction re]oit en param4tre une $onn#e
!ropri#t#s $escription, errorGame, erroressage 7DpeXerror, StatusXemptDHesponse, httprror, malforme$, ser5errror
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
122
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " Sui5re les #5#nements " #rer les erreurs
Formation Java Server Faces
A)a' et JSF -ecevoir une réponse
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
12*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " Hece5oir la r#ponse " rouper $es composants " )a5ascript $ans )sf
Formation Java Server Faces
Hece5oir la r#ponse " 3tiliser l&attribut ren$er " es 5aleurs peu5ent Jtre -this, -all, -none, -form " n ciblant le composant, celui'ci fait apparaYtre la r#ponse
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
12+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
rouper les composants " a balise f:aja= peut enca$rer plusieurs composants " 7out le bloc est trait# en aja=
Formation Java Server Faces
)a5ascript $ans )sf " e fichier jsf.js est automati(uement fournit au client " 3tiliser h:outputScript pour en5oDer un autre fichier .js " On peut utiliser le contenu $e jsf.js e=plicitement
ettre en Zu5re la fonction re(uestN
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
125
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " Hece5oir la r#ponse " rouper $es composants " )a5ascript $ans )sf
Formation Java Server Faces
"on!igurer l’application Annotations sur les beans managés
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
12,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " es annotations $e port#e " a cr#ation en a5ance
Formation Java Server Faces
es annotations $e port#e " +pplication
+ccessible E tra5ers toutes les sessions
" Session
+ccessible E tra5ers toutes les re(uJtes 677! Nune P conne=ion Q
" Flow
+ccessible E tra5ers un flu= $onn#
" He(uest
+ccessible pour une re(uJte
" Iepen$ent
2n$i(ue (ue le bean $#pen$ $e la 5isibilit# $&un autre bean
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
127
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
a cr#ation en a5ance " es beans sont normalement cr##s E la $eman$e " !ro5o(uer la cr#ation en a5ance $&un bean 5a faire (ue le bean e=iste
a5ant mJme $&en a5oir besoin
" 3tiliser -anage$BeanNeagerXtrue
accompagnant -+pplicationScope
Formation Java Server Faces
Ce (u&on a cou5ert " es annotations $e port#e " a cr#ation en a5ance
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
12
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
"on!igurer l’application "on!igurer les beans avec .%L
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
!lan " e fichier $e configuration " 2nt#rJt $e param#trer par le fichier =ml
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
12
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
e fichier $e configuration " Ians faces'config.=ml " a balise Lmanage$'beanM " I#crire
a classe e nom a port#e Ies 5aleurs initiales pour les propri#t#s
Formation Java Server Faces
2nt#rJts " !aram#trage in$#pen$ant $u co$e " !eut Jtre mo$ifi# apr4s $#ploiement " Ge n#cessite pas $e recompilation
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1*0
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " e fichier $e configuration " 2nt#rJt $e param#trer par le fichier =ml
Formation Java Server Faces
"on!igurer l’application Prise en compte de la langue
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1*1
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " Construction $es ressources langage " Configuration $es langues " +cc4s au= te=tes tra$uits
Formation Java Server Faces
Construction $es ressources langage " Cr#er $es fichiers $e propri#t#s " Gommage $es fichiers Lnom'$u'bun$leMLco$elangM.properties " !lac#s $ans un pac1age
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1*2
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Configuration $es langues " Ians le fichier faces'config.=ml " Ionner l&emplacement $u bun$le " Sp#cifier les langues utilisables
Formation Java Server Faces
+cc4s au= te=tes tra$uits " Sp#cifier le nom $u bun$le et la cl# " a langue utilis#e est la langue $u na5igateur ou langue par $#faut
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1**
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " Construction $es ressources langage " Configuration $es langues " +cc4s au= te=tes tra$uits
Formation Java Server Faces
"on!igurer l’application Faces !lo/s
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1*+
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " I#finition " ise en Zu5re " Configuration
Formation Java Server Faces
I#finition " 3ne port#e sp#cifi(ue $es 5ariables : flowScope " !ermet $e limiter la 5ali$it# $e certaines $onn#es E un enchaYnement " !oss4$e un point $&entr#e et un point $e retour " Hessemble E $es appels $e processus
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1*5
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
ise en Zu5re implicite " Ionner un nom E ce P flow Q, utiliser ce nom comme action " Cr#er un r#pertoire $e ce nom au mJme ni5eau (ue 9B'2GF " d placer
3n fichier $e config Lnom$uflu=M.=ml N5i$e 3n fichier $&entr#e Lnom$uflu=M.=html +utant $e fichiers =html (ue n#cessaires
" 3n retour
Lnom$uflu=M'return.=ml
Formation Java Server Faces
Configuration " e flu= peut Jtre configur#
!ar fichier "
Ians le r#pertoire $u flu= -
Gom $u flu=, son point $e retour
-
es param4tres en entr#e
-
es appels E $&autres flu=
!ar annotations
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1*,
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " I#finition " ise en Zu5re " Configuration
Formation Java Server Faces
"on!igurer l’application La sécurité
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1*7
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
!lan " es m#tho$es $&authentification " a $#finition $es r[les $e s#curit# " a $#finition $es contraintes $e s#curit#
Formation Java Server Faces
es m#tho$es $&authentification " +uthentification $e base
B+S2C utilise une boYte $e $ialogue stan$ar$ pour i$entifier l&utilisateur
" +uthentification a5ec formulaire
FOH utilise une boYte $e $ialogue sp#cifi(ue
" +uthentification par certificat
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
I#finition $es r[les " I#finir les r[les $ans web.=ml " I#finir le rapport entre le principal et le r[le, a5ec les mots $e passe
correspon$ant
Selon le ser5eur +5ec lassfish "
Ians glassfish.=ml
Formation Java Server Faces
I#finition $es contraintes $e s#curit# " &acc4s E $es ressources 5a Jtre limit# E certains r[les
I#finir les ressources prot#g#es I#finir les r[les autoris#s
" Ians web.=ml
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1*
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Ce (u&on a cou5ert " es m#tho$es $&authentification " a $#finition $es r[les $e s#curit# " a $#finition $es contraintes $e s#curit#
Formation Java Server Faces
"onclusion
Site : http://www.alphorm.com Blog : http://blog.alphorm.com
Consultant, concepteur et formateur Objets ogiciels
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1+0
Alphorm.com-Support de la Formation Java Server Faces
25/01/2017
Gous a5ons 5u " Chapitre 8 : &application 9eb " Chapitre : a technologie )SF " Chapitre ; : es facelets " Chapitre < : =pression anguage " Chapitre > : )SF $ans les pages 9eb " Chapitre 0 : Con5erters, isteners et ?ali$ators " Chapitre @ : es beans manag#s " Chapitre A : +ja= et )SF " Chapitre : Configurer l&application )SF Formation Java Server Faces
t la suite * " a formation ) persistence " iaison au= $onn#es par 6ibernate
Formation Java Server Faces
TOT! T"#"SAT"O$ !$ %!&O'S %! A#(&O') !ST "$T!'%"T!
1+1