Montre un petit exemple utilisant l’API CDI. Cet article minimaliste est une introduction à un autre article sur le développement WEB qui utilisera plus en détail cette API.
Avec la dernière version de Netbeans 8.1 et Glassfish 4.1, lorsque vous créerez un Manged Bean, vous verrez que ce n’est plus l’annotation @ManagedBean
qui est utilisée mais @Named
.
Il s’agit, en fait d’une nouvelle API nommée CDI qui est plus générique que l’ancienne. Vous pourrez, par exemple, utiliser cette API dans une application non WEB ou ajouter @Named
à un EJB pour le rendre accessible directement dans votre page WEB.
Attention : Certaines annotations portent le même nom dans l’ancienne et la nouvelle API. Vous ne devrez pas les confondre sous peine de dysfonctionnement. C’est le cas des annotations de définition du scope (durée de vie) du bean. Par exemple, pour @RequestScope
:
JSF | javax.faces.bean.RequestScoped |
CDI | javax.enterprise.context.RequestScoped |
Remarque : Pour pouvoir utiliser cette API, vous devrez utiliser des serveur d’applications Java compatibles JavaEE 6.
Pour comprendre le principe, nous allons réaliser un petit exercice pour voir ces nouvelles annotations.
Dans Netbeans, créez ne nouvelle application Web en choisissant :
Nouveau projet/JavaWeb/WebApplication.
Dans les différentes pages et onglets de l’assistant, vous donnerez un nom à votre projet, vous sélectionnerez Glassfish 4.1, JavaEE7 Web, vous cocherez JavaServer Faces. Par défaut, vous serez en JSF 2.2 avec la technologie Facelet.
Cliquez sur Terminer et vous devriez avoir un projet ne contenant qu’une page index.xhtml
. Vous pourrez lancer l’exécution du programme pour vérifier que ce dernier ce compile et se déploie bien sous GlassFish. Une page blanche affichant
Hello from Facelets
devrait s’afficher dans le navigateur.
Nous allons créer notre bean. A partir du dossier Source du package cliquez droit, sélectionnez : Nouveau/Autre...
Puis sélectionnez Catégoie:JavaServer Faces et Type de fichier : JSF Managed Bean. Cliquez sur suivant ; Donnez un nom à votre classe (Exemple : BonjourMonde) puis, cliquez sur terminer.
Vous devriez avoir le code suivant :
Nous voyons que Netbeans a utilisé les nouvelles annotations avec les packages correspondants. L’annotation @Named
a comme paramètre une chaîne définissant le nom de l’instance qui sera utilisée dans une page JSF ou JSP en langage EL . L’annotation @Dependent
est le scope par défaut et peut donc être omit. Il définie la durée de vie de l’instance par rapport à un contexte : durée de la session, de la requête, de l’application, etc.
Nous allons maintenant ajouter une méthode permettant de renvoyer un message.
Nous allons maintenant modifier le fichier index.xhtml pour utiliser le bean.
Remarque : Il se peut que vous ayez un message d’erreur à l’exécution de temps en temps. N’hésitez pas dans ce cas, à utiliser la commande Netoyer/reconstruire de Netbeans et tout devrait rentrer dans l’ordre.
Il existe plusieurs autres annotations liées à CDI. En voici quelques unes dont vous aurez rapidement besoin :
Si vous désirez utiliser un bean à partir d’un autre, vous utiliserez l’annotation @Inject
Exemple :
Une autre annotation est celle vous permettant d’annoter une méthode d’initialisation du bean qui est @PostConstruct
Exemple :
Si vous désirez appofondir le sujet, vous trouverez sur Internet d’autres informations comme, par exemple sur le site developpez.com.
Vous devriez également bientôt trouver sur ce sites d’autres articles qui utiliseont les quelques annotations décites ici.
L’utilisation de CDI avec Netbeans est très simple puisque c’est le choix fait lorsque l’on utilise l’assistant de création de Managed Bean. Dans les précédentes versions de Netbeans, vous deviez le spécifier. Un autre avantage de la dernière version de CDI est que votre projet n’a plus besoin de posséder un fichier de configuration META-INF/beans.xml
. L’implémentation de référence de CDI se nomme WELD et est intégrée à GlassFish 4.1. Si vous utilisez un autre serveur, vous devrez sans doute ajouter manuellement à votre projet une implémentation de CDI. Ce sera le cas avec TOMCAT par exemple. CDI peut également être utilisé avec une application JavaSE et n’est donc pas réservé aux application JavaEE .
Crée par: chris
Créé le: 7 mars 2016
Modifié le: 7 mars 2016
Nombre de visites: 320
Popularité: 11 %
Popularité absolue: 1
2003-2024 LePpf
Plan du site
| Se connecter |
RSS 2.0 |
Sur YouTube
Visiteurs connectés : 0
Nombre moyen de visites quotidiennes sur le site: 202