jee 5 - jsf f.pfister (francois.pfister@ema.fr). 2 institut eerie 2007-2008 les technologies du web...
Post on 03-Apr-2015
117 Views
Preview:
TRANSCRIPT
JEE 5 - JSFJEE 5 - JSF
F.Pfister (francois.pfister@ema.fr)F.Pfister (francois.pfister@ema.fr)
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
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
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
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...
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
7institut eerie 2007-2008
Le cycle de vie d'une requête
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
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.
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
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>
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
13institut eerie 2007-2008
Configuration d'une application
Exemple
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
15institut eerie 2007-2008
Structure de faces-config.xml
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
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
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)
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
20institut eerie 2007-2008
Les composants visuels
21institut eerie 2007-2008
Les composants visuels
22institut eerie 2007-2008
Les composants de la taglib core
23institut eerie 2007-2008
Les composants de la taglib core
24institut eerie 2007-2008
Composants visuels: Les classes de base
25institut eerie 2007-2008
JSF exemple avec la taglig html et core
Mise en oeuvre de selectOneRadio (html) selectItems (core)
26institut eerie 2007-2008
JSF exemple avec la taglig html et core
La jsp
Le bean dans faces-config
27institut eerie 2007-2008
JSF exemple avec la taglig html et core
Le backing-bean
28institut eerie 2007-2008
Exemples
jsp bean config
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
30institut eerie 2007-2008
Les tags <messages> et <message>
31institut eerie 2007-2008
Le tag <dataTable>
Représente une liste de données
32institut eerie 2007-2008
Le tag <dataTable>
33institut eerie 2007-2008
Le tag <dataTable>
34institut eerie 2007-2008
Le tag <dataTable>
35institut eerie 2007-2008
Le tag <dataTable>
Il y a deux actions qui sont mappées sur deux méthodes du backing-bean
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
top related