JEE 5 - JSF F.Pfister
2 institut eerie Les technologies du web Servlets JSP MVC Model 1 : servlets + JSP MVC Model 2 : un seule servlet + JSP Java Server Faces
3 institut eerie 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
4 institut eerie 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
5 institut eerie 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...
6 institut eerie 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
7 institut eerie Le cycle de vie d'une requête
8 institut eerie 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
9 institut eerie 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.
10 institut eerie 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
11 institut eerie Configuration d'une application Pour invoquer les jsp en utilisant le suffixe jsf mapper sur la servlet les url terminant par.jsf Faces Servlet *.jsf régler le suffixe par défaut de la servlet javax.faces.DEFAULT_SUFFIX.jsf
12 institut eerie Configuration d'une application Le tag est obligatoire dans toutes pages utilisant JSF Le tag génère un tag HTML form qui définit un formulaire Les pages doivent référencer les taglibs JSF
13 institut eerie Configuration d'une application Exemple
14 institut eerie 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
15 institut eerie Structure de faces-config.xml
16 institut eerie 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
17 institut eerie 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
18 institut eerie 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)
19 institut eerie Les beans Les objets prédéfinis
20 institut eerie Les composants visuels
21 institut eerie Les composants visuels
22 institut eerie Les composants de la taglib core
23 institut eerie Les composants de la taglib core
24 institut eerie Composants visuels: Les classes de base
25 institut eerie JSF exemple avec la taglig html et core Mise en oeuvre de selectOneRadio (html) selectItems (core)
26 institut eerie JSF exemple avec la taglig html et core La jsp Le bean dans faces-config
27 institut eerie JSF exemple avec la taglig html et core Le backing-bean
28 institut eerie Exemples jsp bean config
29 institut eerie Les tags et Affichent des messages (erreur ou info) Information Warning Error Fatal affiche tous les messages affiche un seul message
30 institut eerie Les tags et
31 institut eerie Le tag Représente une liste de données
32 institut eerie Le tag
33 institut eerie Le tag
34 institut eerie Le tag
35 institut eerie Le tag Il y a deux actions qui sont mappées sur deux méthodes du backing-bean
36 institut eerie 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