Avec Objis, spécialiste formation JSF, découvrez la valeur ajoutée des annotations introduite avec JSF 2 pour la gestion des beans Managés. Comprenez la notion de ‘scope’, ainsi que la notion de ‘cycle de vie’ des beans. Enfin faite communiquez les beans managés et vos composants IHM grâce à JSF Expression Language (JSF EL)
Objectifs
Comprendre la déclaration des Managed beans
Comprendre l’importance de JSF Expression Language (JSF EL)
Programme
Contexte et objectifs
Partie 1 : Codage d’un bean managé
Partie 2 : Codage d’une vue associée à ce bean managé
Partie 3 : Déploiement
Partie 2 : Comprendre l’importance du langage d’expression unifié de JSF 2 (EL)
Durée
30 min.
Contexte
Vous souhaitez gérer les données de vos vues via des Managed Beans avec JSF 2. Vous utilisez à cette fin le langage JSF Expression Language .
Partie 1 : Comprendre les Managed beans
Un bean Managé est une classe Java annotée. Il exécute la logique métier (ou la délèguent aux EJB, par exemple), gère la navigation entre les pages ainsi que l’état les données d’une page.
Une application JSF typique contient un ou plusieurs beans managé – Plusieurs pages peuvent partager le même bean managé.
Les données d’une page JSF sont stockées dans les attributs du bean managé , qui, en ce cas, est également appelé « backing bean ».
Un backing bean définit les données auxquelles est lié un composant de l’interface utilisateur (la cible d’un formulaire, par exemple).
Le langage EL (Expression Langage ) permet de faire le lien entre un composant vue JSF et le bean managé associé.
Dans une application JSF, les traitements liés directement à l’interface utilisateur sont écrits dans les backing beans,
Ces backing beans font appels à des EJB ou des classes Java ordinaire pour effectuer les traitements qui ne sont pas liés directement à l’interface utilisateur.
PROJET ECLIPSE
Téléchargez le Zip du projet
Partie 2 : Création du bean managé ‘UserBean’
Créez un package ‘com.objis.demojsf.beans’
Dans ce package, créez une classe java ‘UserBean’ , avec son constructeur sans arguments ainsi que ses Getters et Setters comme suit :
REMARQUE : à cette étape du codage, il s’agit d’une simple classe java, et non d’un Managed Bean JSF2.
Ajoutez l’annotation @ManagedBean au dessus de la déclaration de la classe :
En utilisant la documentation des beans managés , expliquez le rôle de cette annotation.
INFO : La présence de cette annotation à l’exécution enregister systématiquement cette classe comme étant un bean managé JSF2. Cette classe sera scannée au démarrage de l’application, avant la première requête.
En utilisation la documentation JSF , expliquez les 2 paramètres possibles de cette annotation : ‘name’ et ‘eager’
Donnez au bean le nom ‘userbean’
QUESTION, quel serait le nom ‘par defaut’ du bean si nous n’avions pas donné le nom ‘userbean’ ?
QUESTION : que se passe t’il si dans un projet 2 beans ont le même nom ?
Expliquez l’annotation SessionScoped. Quel est le scope par défaut ?
Imposez un scope ‘Session’
QUESTION : le constructeur sans argument est t’il nécessaire pour le bean managé ? Que se passe t’il s’il n’y en a pas ?
Partie 2:Comprendre l’importance de JSF Expression Language (JSF EL)
JSF EL, propose un mécanisme de communication entre les composants de la couche Vue et la logique applicative représentée par les Managed Beans.
JSF utilise le langage EL pour les fonctionnalités suivantes :
— > La réalisation des évaluations immédiates et différées des expressions.
— > L’écriture des données vers un Managed Bean.
— > Le déclenchement des méthodes d’un Managed Bean.
— > La réalisation des opérations arithmétiques.
Afin d’accéder en écrire comme en lecture aux propriétés du Managed Bean UserBean.java définit par l’annotaion @ManagedBean(name= »userbean » ) on utilise le nom du bean « userbean » suivi du nom de la propriété ou du nom de la méthode du Managed bean #userbean.xxx
Partie 3 :Mise en situation pratique
Téléchargez
register.xhtml
Copiez le fichier dans WebContent du projet Eclipse.
En utilisant le langage d’expression JSF, comme ci-dessous, identifiez les expressions qui permettent d’acceder en écriture comme en lecture aux propriétés du bean UserBean.
Expliquez
L’exécution du projet sur le serveur Tomcat donne le rendu suivant.
Expliquez.
JSF EL(expression language) nous permet d’accéder en lecture comme en écriture aux propriétés du bean depuis la vue, en appelant le getter ou setter de chaque propriété.
Partie 4 : Propriétés par défaut avec @ManagedProperty
EXERCICES:
Initialiser les propriétés du Managed bean UserBean.java telle que:
nom= »DUPONT »;
prenom= »MICHEL »
genre= »homme »
SOLUTION : JSF 2 fournit l’annotation @ManagedProperty pour initialiser les propriétés nom, prenom, genre et email de UserBean:
L’éxécution du projet donne le rendu ci-dessous:
Téléchargez le Zip du projet
Zip projet Tutoriel 6
Partie 5 : intégration avec facelet
Proposez le code d’un écran facelet permettant d’obtenir le résultat suivant
PROJET ECLIPSE
Partie 6 : écouteur phases JSF
Rappelez les 6 phases du cycle de vie d’une requête JSF
Code
Ajoutez le code suivant dans le projet
Expliquez
Configuration
Ajoutez la configuration suivante dans faces-config.xml
Expliquez
Logs PHASES
Expliquez le résultat :
Conclusion
Dans ce tutoriel, vous avez compris et mis en œuvre les annotations JSF 2 pour déclarer un bean managé, pour initialiser les propriétés du Bean, définir la portée du bean managé, et enfin, fait communiquer votre IHM avec votre bean managé en utilisant JSF EL.
Pour aller plus loin : Formation JSF Objis
Pour aller plus loin sur les mécanismes de navigation fournies par la version 2 de JSF voir le Tuto 7.
Formation JSF
Le chemin le plus court pour avoir les réflexes et la méthodologie du bon développeur JSF : Formation JSF