Upload
blaze-franks
View
47
Download
0
Embed Size (px)
DESCRIPTION
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. Le Développement d’Application Web. Toujours les mêmes problèmes - PowerPoint PPT Presentation
Citation preview
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
mardi 30 novembre 14h - A030
GRANIÉ LaurentIngénieur de Développement
> Titre de la présentation - Date - Références4 4
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
Développements parallèles
Couplages faibles
> Titre de la présentation - Date - Références5 5
Le Développement d’Application Web
Code réutilisable
Swing
Component, Container => Encapsulation
Modèle événementiel
Web
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érences7 7
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
> Titre de la présentation - Date - Références8 8
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 IDE
Implémentations de JSF
> Titre de la présentation - Date - Références11 11
Le cycle de vie d’une page jsf
Restore View Phase
Vue objet / java de l’interface
Construction de l’arbre des composants
Branchement aux composants
Des gestionnaires d’événements
Des convertiseurs, validateurs
Enregistrement de la vue dans le FacesContext
> Titre de la présentation - Date - Références12 12
Le cycle de vie d’une page jsf
Apply Request Values Phase
Les composants ont une valeur
Chaque composant extrait sa valeur de la request (decode)
Les erreurs éventuelles sont stockées dans le FacesContext
> Titre de la présentation - Date - Références13 13
Le cycle de vie d’une page jsf
Process Validations Phase
Les composants sont valides
Tous les validateurs de la vue sont executés
Les erreurs sont stockées dans la FacesContext
> Titre de la présentation - Date - Références14 14
Le cycle de vie d’une page jsf
Update Model Values Phase
Le modèle objet côté serveur
est mise à jour
Les donées de la vue sont apliquées aux objets côté serveur.
> Titre de la présentation - Date - Références15 15
Le cycle de vie d’une page jsf
Invoke Application Phase
Choix de la redirection
Phase de navigation
Gestion des evénements d’application
> Titre de la présentation - Date - Références16 16
Le cycle de vie d’une page jsf
Render Response Phase
L’arbre de composant est rendu
Choix du container de rendu
Par default : Jsp Container
> Titre de la présentation - Date - Références18 18
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
> Titre de la présentation - Date - Références19 19
Premières conclusions
HTTP
Servlet
Java Server Page
Taglib
Framework (MVC)
Java Server Faces
> Titre de la présentation - Date - Références21 21
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é
> Titre de la présentation - Date - Références22 22
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
> Titre de la présentation - Date - Références24 24
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 …
> Titre de la présentation - Date - Références25 25
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-JavaServer-Faces-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