Le cycle de vie d`une page jsf

publicité
Présentation du framework JSF (Java Server
Faces) dans le modèle événementiel MVCII
GRANIÉ Laurent
Ingénieur de Développement
mardi 30 novembre 14h - A030
Le Développement d’Application Web
3
> Titre de la présentation - Date - Références
3
Le Développement d’Application Web
 Toujours les mêmes problèmes
 Interface complexe et souvent modifiée

“No limit” du designer / client

Développement “from scratch”
 Plusieurs métiers que l’on veut indépendants les uns des
autres
4

Développements parallèles

Couplages faibles
> Titre de la présentation - Date - Références
4
Le Développement d’Application Web
 Code réutilisable
 Swing

Component, Container => Encapsulation

Modèle événementiel
 Web
5

Difficile de savoir ce qu’il arrive par analyse de la request

Voir l’interface sous forme de concepts de haut niveau
> Titre de la présentation - Date - Références
5
JSF une solution ?
6
> Titre de la présentation - Date - Références
6
JSF une solution ?
 Ce que propose la spécification JSF
 Manipuler les composants graphiques entre les requests
 Rendu HTML
 Support pour le traitement des formualires
 Modèle fortement typé événement
 Mapping des valeurs de la request
 Gestion simple des Exceptions
 Navigation et interaction avec le modèle objets
7
> Titre de la présentation - Date - Références
7
JSF une solution ?
 Préciser les rôles de chacun
 Designer (HTML / JavaScript)
 Dévelopeur de composants graphiques

Réutilisabilité

Encodage de la request

Gestion d’événements
 Dévelopeurs d’application

O/R, Services Métier, etc …
 Éditeurs
8

IDE

Implémentations de JSF
> Titre de la présentation - Date - Références
8
Le cycle de vie d’une page jsf
9
> Titre de la présentation - Date - Références
9
Le cycle de vie d’une page jsf
WAHOU ! WAHOU !
10
> Titre de la présentation - Date - Références
10
Le cycle de vie d’une page jsf
Restore View Phase
Construction de l’arbre des
composants
Branchement aux composants
 Des gestionnaires d’événements
 Des convertiseurs, validateurs
Enregistrement de la vue dans le
FacesContext
Vue objet / java de l’interface
11
> Titre de la présentation - Date - Références
11
Le cycle de vie d’une page jsf
Apply Request Values Phase
Chaque composant extrait sa valeur
de la request (decode)
Les erreurs éventuelles sont
stockées dans le FacesContext
Les composants ont une valeur
12
> Titre de la présentation - Date - Références
12
Le cycle de vie d’une page jsf
Process Validations Phase
Tous les validateurs de la vue sont
executés
Les erreurs sont stockées dans la
FacesContext
Les composants sont valides
13
> Titre de la présentation - Date - Références
13
Le cycle de vie d’une page jsf
Update Model Values Phase
Les donées de la vue sont
apliquées aux objets côté serveur.
Le modèle objet côté serveur
est mise à jour
14
> Titre de la présentation - Date - Références
14
Le cycle de vie d’une page jsf
Invoke Application Phase
Phase de navigation
Gestion des evénements
d’application
Choix de la redirection
15
> Titre de la présentation - Date - Références
15
Le cycle de vie d’une page jsf
Render Response Phase
Choix du container de rendu
Par default : Jsp Container
L’arbre de composant est rendu
16
> Titre de la présentation - Date - Références
16
Premières conclusions
17
> Titre de la présentation - Date - Références
17
Premières conclusions
 Problématiques courantes des applications web
 Mapping HTTP/objet + convertion et validation
 Navigations
 Une vue client côté serveur
 Retrouve l’esprit événement des clients riches Java
 Vue de composants et non de valeurs
On monte d’un niveau
18
> Titre de la présentation - Date - Références
18
Premières conclusions
Java Server Faces
Framework (MVC)
Taglib
Java Server Page
Servlet
HTTP
19
> Titre de la présentation - Date - Références
19
JSF vs. Struts
20
> Titre de la présentation - Date - Références
20
JSF vs. Struts
 Les points forts de JSF
 Agrégation de composants simples dans des composants
plus complexes (displaytag)
 Support d’autres technologies de rendu (Renderer minitel)
 Acces au bean par nom
 Langage plus expressif (taglib)
 Définition (bean, contrôleur) plus simple : pas d’héritage
 Fichiers de configuration plus simple
 Drag-and-drop dans les IDE => productivité
21
> Titre de la présentation - Date - Références
21
JSF vs. Struts
 Les points faibles de JSF
 Maîtrise faible de JSF vs. Struts (agence, communauté)
 Support d’IDE (de moins en moins)
 Support d’autres technologies de rendu
 Confusion entre les URL (.jsp.faces)
 Approche self-submit (.jsp, .do)
 Pas d’équivalent aux Tiles (MyFaces)
 Encore peu de Validateur
 Pas de validation côté client (Javascript)
 Pas de web-app vide d’initialisation
22
> Titre de la présentation - Date - Références
22
Conclusions
23
> Titre de la présentation - Date - Références
23
Conclusions
 Vue client côté serveur !
 Composants graphiques de haut niveau
 Spécification
 de la request (validation, conversion)
 de la navigation
 Approche différente de Struts
 Contrôleur (action vs. événement)
 Encore beaucoup de questions …
24
> Titre de la présentation - Date - Références
24
Bibliographie
 Introduction to JavaServer Faces
http://www.onjava.com/pub/a/onjava/2004/04/07/jsf.html
 Introduction to JavaServer Faces, Part 1
http://www.devshed.com/c/a/Java/Introduction-to-JavaServerFaces-1/
JSF: Introduction, Installation, and Setup
http://www.coreservlets.com/JSF-Tutorial/#Section1
The J2EE 1.4 Tutorial
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html
25
> Titre de la présentation - Date - Références
25
Téléchargement