JEE 5 - JSF F.Pfister ([email protected]). 2 institut eerie 2007-2008 Les technologies du web...

36
JEE 5 - JSF JEE 5 - JSF F.Pfister ([email protected]) F.Pfister ([email protected])

Transcript of JEE 5 - JSF F.Pfister ([email protected]). 2 institut eerie 2007-2008 Les technologies du web...

Page 1: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

JEE 5 - JSFJEE 5 - JSF

F.Pfister ([email protected])F.Pfister ([email protected])

Page 2: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

2institut eerie 2007-2008

Les technologies du web

Servlets JSP MVC Model 1 : servlets + JSP MVC Model 2 : un seule servlet + JSP Java Server Faces

Page 3: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

3institut eerie 2007-2008

JSF

Actuellement le framework web standard

Piloté par le jcp (Struts est open-source) Mis en oeuvre par des outils RAD

À l'instar de delphi, visual-basic, swing

Place la conception web au niveau d'ASP.net et Apple WebObject

S'appuie sur l'expérience de Struts Utilise des taglibs

Page 4: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

4institut eerie 2007-2008

JSF

Les éléments visuels de l'IHM sont produits par un arbre de composants côté serveur

Méthodes événementielles et listeners Conversion et validation des données Extension et création de composants

Page 5: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

5institut eerie 2007-2008

JSF

Navigation entre pages déclarative Internationalisation Package javax.faces Implémentation de référence Rendu des composants

Html Flash (Laszlo) Xul Midlets (J2me) Svg pdf...

Page 6: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

6institut eerie 2007-2008

Le cycle de vie d'une requête

Création de l'arbre de composants Extraction des données des différents

composants de la page Conversion et validation des données Extraction des données validées et mise

à jour du modèle Traitements des événements liés à la

page Génération du rendu de la réponse

Page 7: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

7institut eerie 2007-2008

Le cycle de vie d'une requête

Page 8: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

8institut eerie 2007-2008

Le cycle de vie d'une requête

Restore view: cette première phase permet au serveur de recréer l'arborescence des composants qui composent la page. Cette arborescence est stockée dans un objet de type FacesContext et sera utilisée tout au long du traitement de la requête.

Apply Requests: dans cette étape, les valeurs des données sont extraites de la requête HTTP pour chaque composant et sont stockées dans leur composant respectif dans le FaceContext. Durant cette phase des opérations de convertions sont réalisées pour permettre de transformer les valeurs stockées sous forme de chaîne de caractères dans la requête http en un type utilisé pour le stockage des données.

Process validations : une fois les données extraites et converties, il est possible de procéder à leur validation en appliquant les validators enregistrés auprès de chaque composant. Les éventuelles erreurs de convertions sont stockées dans le FaceContext. Dans ce cas, l'étape suivante est directement « Render Response » pour permettre de réafficher la page avec les valeurs saisies et afficher les erreurs

Page 9: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

9institut eerie 2007-2008

Le cycle de vie d'une requête

Update model values : cette étape permet de stocker dans les composants du FaceContext leur valeur locale validée respective. Les éventuelles erreurs de convertions sont stockées dans le FaceContext. Dans ce cas, l'étape suivante est directement « Render Response » pour permettre de réafficher la page avec les valeurs saisies et afficher les erreurs

Invoke Application: dans cette étape, le ou les événements émis dans la page sont traités. Cette phase doit permettre de déterminer quelle sera la page résultat qui sera renvoyée dans la réponse en utilisant les règles de navigation définie dans l'application. L'arborescence des composants de cette page est créée.

Render Response : cette étape se charge de créer le rendu de la page de la réponse.

Page 10: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

10institut eerie 2007-2008

Configuration d'une application

Identique à la structure d'une webapp classique à base de jsp-servlet

Les requêtes *.jsf sont mappées sur la servlet javax.faces.webapp.FacesServlet

Les bibliothèques jsf doivent être incluses dans l'application:

jsf-api.jar jsf-ri.jar jstl.jar standard.jar common-beanutils.jar commons-digester.jar commons-collections.jar commons-logging.jar

Page 11: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

11institut eerie 2007-2008

Configuration d'une application

Pour invoquer les jsp en utilisant le suffixe jsf mapper sur la servlet les url terminant par .jsf

<servlet-mapping>

<servlet-name>Faces Servlet</servlet-name>

<url-pattern>*.jsf</url-pattern>

</servlet-mapping>

régler le suffixe par défaut de la servlet

<context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name>

<param-value>.jsf</param-value>

</context-param>

Page 12: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

12institut eerie 2007-2008

Configuration d'une application

Le tag <view> est obligatoire dans toutes pages utilisant JSF

Le tag <form> génère un tag HTML form qui définit un formulaire

Les pages doivent référencer les taglibs JSF

Page 13: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

13institut eerie 2007-2008

Configuration d'une application

Exemple

Page 14: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

14institut eerie 2007-2008

Configuration d'une application

La première page d'une application doit être une page jsp classique

L'initialisation des ressources et la définition de la navigation résident dans le fichier faces-config.xml

Page 15: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

15institut eerie 2007-2008

Structure de faces-config.xml

Page 16: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

16institut eerie 2007-2008

Les beans

Chaque vue est une page jsp utilisant des composants jsf

A chaque vue correspond un objet java Qui est une abstraction de la vue Qui joue le rôle de contrôleur Qui recèle le modèle du domaine

On les appelle les Backing-beans

Page 17: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

17institut eerie 2007-2008

Les beans

Le cycle de vie est géré par le framework

La portée de l'objet: Request Session Application

Il n'y a pas à se soucier de l'instanciation

Page 18: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

18institut eerie 2007-2008

Les beans – les expressions de liaison

La syntaxe ressemble à EL de jsp

Le délimiteur # remplace $ Les opérateurs:

arithmétiques: + - * / % div mod

comparaison: < <= > >= == != lt le gt ge eq ne

logiques: && || ! and or not

opérateur vide: empty (objet null, chaîne – tableau - collection vide)

test: ? : (opérateur ternaire)

Page 19: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

19institut eerie 2007-2008

Les beans

Les objets prédéfinisobjet encapsuleheader les paramètres de l'en-tête de la requête http (première valeur)header-value les paramètres de l'en-tête de la requête http (toutes les valeurs)param les paramètres de la requête http (première valeur)param-values les paramètres de la requête http (toutes les valeurs)cookies les cookiesinitParam les paramètres d'initialisation de l'applicationrequestScope les éléments définis dans la portée requestsessionScope les éléments définis dans la portée sessionapplicationScope les éléments définis dans la portée applicationfacesContext une instance de la classe FacesContextview une instance de la classe UIViewRoot qui encapsule la vue

Page 20: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

20institut eerie 2007-2008

Les composants visuels

Page 21: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

21institut eerie 2007-2008

Les composants visuels

Page 22: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

22institut eerie 2007-2008

Les composants de la taglib core

Page 23: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

23institut eerie 2007-2008

Les composants de la taglib core

Page 24: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

24institut eerie 2007-2008

Composants visuels: Les classes de base

Page 25: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

25institut eerie 2007-2008

JSF exemple avec la taglig html et core

Mise en oeuvre de selectOneRadio (html) selectItems (core)

Page 26: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

26institut eerie 2007-2008

JSF exemple avec la taglig html et core

La jsp

Le bean dans faces-config

Page 27: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

27institut eerie 2007-2008

JSF exemple avec la taglig html et core

Le backing-bean

Page 28: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

28institut eerie 2007-2008

Exemples

jsp bean config

Page 29: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

29institut eerie 2007-2008

Les tags <messages> et <message>

Affichent des messages (erreur ou info) Information Warning Error Fatal

<messages> affiche tous les messages <message> affiche un seul message

Page 30: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

30institut eerie 2007-2008

Les tags <messages> et <message>

Page 31: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

31institut eerie 2007-2008

Le tag <dataTable>

Représente une liste de données

Page 32: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

32institut eerie 2007-2008

Le tag <dataTable>

Page 33: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

33institut eerie 2007-2008

Le tag <dataTable>

Page 34: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

34institut eerie 2007-2008

Le tag <dataTable>

Page 35: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

35institut eerie 2007-2008

Le tag <dataTable>

Il y a deux actions qui sont mappées sur deux méthodes du backing-bean

Page 36: JEE 5 - JSF F.Pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model.

36institut eerie 2007-2008

Il reste à voir

Les convertisseurs Les validateurs Le système de navigation La gestion des événements L'internationalisation La mise en oeuvre visuelle avec

Netbeans