SlideShare una empresa de Scribd logo
1 de 283
Descargar para leer sin conexión
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Formation
JSF (Java Server Faces)
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Présentation du formateur
• Qu’est-ce que JSF?
• Le plan de la formation
• Les références bibliographiques
• Autres liens utiles
Formation Java Server Faces alphorm.com™©
Plan
• Présentation du formateur
• Qu’est-ce que JSF?
• Le plan de la formation
• Les références bibliographiques
• Autres liens utiles
Formation Java Server Faces alphorm.com™©
Qu’est-ce que JSF
• Un ensemble de bibliothèques Java
• Utilisées dans une application JEE
• Pour la couche de présentation
• Permet de faire le lien entre HTML et la logique
Formation Java Server Faces alphorm.com™©
Le plan de la formation
• Chapitre 1 : L’application Web
• Chapitre 2 : La technologie JSF
• Chapitre 3 : Les facelets
• Chapitre 4 : Expression Language
• Chapitre 5 : JSF dans les pages Web
• Chapitre 6 : Converters, Listeners et Validators
• Chapitre 7 : Les beans managés
• Chapitre 8 : Ajax et JSF
• Chapitre 9 : Configurer l’application JSF
Formation Java Server Faces alphorm.com™©
Les références bibliographiques
• Java EE 7 The Big Picture, Oracle
• Java EE Guide de développement Web en Java
Formation Java Server Faces alphorm.com™©
Il n’y a plus qu’à…
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Architecture
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Les parties de l’application
• Les outils de développement
• Un servlet
• Un EJB
• Une entité
Formation Java Server Faces alphorm.com™©
Les parties de l’application
• Une application complète JEE possède les parties suivantes
Formation Java Server Faces alphorm.com™©
Les outils de développement
• Netbeans 8.1 JEE
• Le téléchargement est lié à
Glassfish, implémentation de référence pour les serveurs JEE
Tomcat, implémentation de référence pour la partie Web
• Maven comme environnement de construction en lot
Résoud les dépendances et télécharge les bibliothèques nécessaires
Formation Java Server Faces alphorm.com™©
Présentation du formateur
• Fabien Brissonneau
• Email : fabien.brissonneau@gmail.com
• Consultant Concepteur et Formateur
• Missions d’architecture, de conception , de réalisation logicielles
• Fondateur de eiXa6
• Actuellement en mission sur un projet de gestion
• Mes références :
Mon profil LinkedIn : http://fr.linkedin.com/pub/fabien-brissonneau/65/902/92a/
Formation Java Server Faces alphorm.com™©
Un EJB
• Tout simplement un POJO, qui s’occupe de traitement logiciel
• Référence la partie base de données
• Implémente la logique applicative
Formation Java Server Faces alphorm.com™©
Une entité
• Une classe annotée
• Déclare une clé
• Peut être accompagnée des instructions de base de donnée
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Les parties de l’application
• Les outils de développement
• Un servlet
• Un EJB
• Une entité
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Packaging et
déploiement
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Fichiers war
• Fichiers jar
• Fichiers ear
Formation Java Server Faces alphorm.com™©
Fichiers war
• Le déploiement d’une application Web est décrit par un fichier
• Sorte de fichier ZIP
• Structure prédéfinie
La racine contient les fichiers textes, HTML, JSP, JSF
Un répertoire WEB-INF qui contient les servlets et les classes Java
Formation Java Server Faces alphorm.com™©
Fichiers JAR
• La partie modèle est stockée dans un fichier d’extension .jar
• Structure prédéfinie similaire
• Le répertoire META-INF contient des infos sur la persistence
Le fichier persistence.xml
Formation Java Server Faces alphorm.com™©
Fichiers EAR
• Le fichier en extension ear regroupe les deux précédents
• Structure :
/META-INF
• /MANIFEST.MF
/<fichier web>.war
/<fichier ejb>.jar
• Ce fichier décrit donc le déploiement sur un serveur JEE
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Fichiers war
• Fichiers jar
• Fichiers ear
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
L’API Servlet
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Ce que fait un Servlet
• Comment créer un Servlet
• Exemple d’application
• La classe HttpServlet
• La classe ServletContext
• La classe HttpSession
• La classe RequestDispatcher
Formation Java Server Faces alphorm.com™©
Ce que fait un Servlet
• Un servlet est exécuté dans le conteneur Web
• Doit examiner l’entête de requête pour déterminer le type de contenu
attendu par le client
• Récupérer les informations à retourner
• Positionner les informations d’entête de retour
• Ecrire en retour les données attendues
Formation Java Server Faces alphorm.com™©
Comment créer un Servlet
• Dériver la classe javax.servlet.http.HttpServlet
• Implémenter les méthodes correspondant au protocole HTTP
GET,POST,HEAD,PUT,TRACE,OPTIONS, et la méthode service
• Utiliser les classes de requête et de réponse
La classe javax.servlet.http.HttpServletRequest
La classe javax.servlet.http.HttpServletResponse
Formation Java Server Faces alphorm.com™©
Exemple d’application
• Une méthode doGet d’un Servlet pour récupérer des photos
Formation Java Server Faces alphorm.com™©
La classe HttpServlet
• Dans le package javax.servlet.http
• Classe mère des servlets, multiples instances, thread-safe
• Suit un cycle de vie spécifique :
Instanciée avant toute requête HTTP
Méthode init(ServletConfig ) appelée : pour placer toute activité longue et
nécessaire aux traitements des requêtes (ouverture de connexion…)
Méthode doXXX, en fonction de la méthode HTTP
Méthode destroy() appelée : nettoyage des ressources couteuses (fermeture
de connexion…)
La même instance ne sera plus réutilisée
Formation Java Server Faces alphorm.com™©
La classe ServletContext
• Dans le package javax.servlet
• Chaque application Web a une unique instance de cette classe
• Permet à un servlet d’obtenir de l’information sur l’environnement
Version de l’API Servlet supportée, chemin d’accès à l’application, …
Propose une « map » d’attributs liés à l’application
Formation Java Server Faces alphorm.com™©
Qu’est-ce que JSF
• Un ensemble de bibliothèques Java
• Utilisées dans une application JEE
• Pour la couche de présentation
• Permet de faire le lien entre HTML et la logique
Formation Java Server Faces alphorm.com™©
La classe RequestDispatcher
• Dans le package javax.servlet
• Permet de gérer les « forward » et les « include »
• Le « forward » permet de demander à la ressource d’écrire la réponse à
la place du servlet courant
• Le « include » permet de demander à la ressource de compléter la
réponse que le servlet courant à commencer à écrire
• Obtenu à partir du contexte
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Ce que fait un Servlet
• Comment créer un Servlet
• Exemple d’application
• La classe HttpServlet
• La classe ServletContext
• La classe HttpSession
• La classe RequestDispatcher
Formation Java Server Faces alphorm.com™©
Le mapping des
Servlets
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Formation Java Server Faces alphorm.com™©
Plan
• Le déploiement des informations
• Les chemins d’accès
• L’annotation @WebServlet
• Ordre des recherches
Formation Java Server Faces alphorm.com™©
Le déploiement des informations
• A partir de l’application Web (ou du fichier .war)
• Les ressources Web : à la racine /
Fichiers index.html, login.jsp,…
• Les classes Java dans /WEB-INF/classes
Fichiers Voiture.class, …
• Les bibliothèques dans /WEB-INF/lib
Fichiers utilitaires.jar, …
• Informations de déploiement /WEB-INF/Web.xml
Formation Java Server Faces alphorm.com™©
Les chemins d’accès
• Une technique simple est d’affecter une URI à chaque Servlet,
relativement à la racine de l’application
• Une URL peut être
Relative : /catalogue/album
Relative avec caractère générique : <uri>/*
Une extension de fichier : *.jsp
• Les réglages peuvent se faire avec @WebServlet
Package javax.servlet.annotation
Formation Java Server Faces alphorm.com™©
L’annotation @WebServlet
• Paramètre asyncSupported (boolean)
• Paramètre description (String)
• Paramètre displayName (String)
• Paramètres initParam (WebInitParam[])
• Paramètres largeIcon et smallIcon (String : nom de l’image)
• Paramètre loadOnStartup (int : numéro d’ordre dans l’instanciation)
• Paramètre name (String : nom logique, à utiliser dans RequestDispatcher)
• Paramètre urlPatterns et value (String[] : mapping du servlet)
Formation Java Server Faces alphorm.com™©
Le plan de la formation
• Chapitre 1 : L’application Web
• Chapitre 2 : La technologie JSF
• Chapitre 3 : Les facelets
• Chapitre 4 : Expression Language
• Chapitre 5 : JSF dans les pages Web
• Chapitre 6 : Converters, Listeners et Validators
• Chapitre 7 : Les beans managés
• Chapitre 8 : Ajax et JSF
• Chapitre 9 : Configurer l’application JSF
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Le déploiement des informations
• Les chemins d’accès
• L’annotation @WebServlet
• Ordre des recherches
Formation Java Server Faces alphorm.com™©
Les pages JSP
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Formation Java Server Faces alphorm.com™©
Plan
• L’architecture JSP
• Exemple de JSP
• La syntaxe des JSP
• Les directives JSP
Formation Java Server Faces alphorm.com™©
L’architecture JSP
• Une page JSP est une page HTML dans laquelle apparaissent des balises
introduisant du Java
• Là où le Servlet était du Java retournant du HTML
• La page JSP est traduite runtime en un Servlet par le conteneur
• Le Servlet est ensuite compilé runtime
• La pages JSP accède donc au même environnement que le Servlet
Formation Java Server Faces alphorm.com™©
Exemple de JSP
• Une page d’extension .jsp par défaut, à la racine de l’application
Formation Java Server Faces alphorm.com™©
La syntaxe des JSP
• Les scriplets sont les zones encadrées par <% et %>
• Il y a deux types de scriplets
<%= expression java %> : l’expression est évaluée, intégrée à la sortie
<% expression java %> : une collection d’expressions, pas de sortie explicite
• La sortie préconfigurée, référence de type javax.servlet.jdp.JspWriter
Sous type de java.io.Writer
• Le fichier horloge.jsp correspond à l’URL
http://<serveur:port>/<application>/horloge.jsp
• La correspondance peut être modifiée
Formation Java Server Faces alphorm.com™©
Les directives JSP
• Les directives JSP paramètrent globalement la page
• Forme : <%@ nomdedirective att1=valeur att2=valeur %>
• Directive page : les propriétés générales de la page
• Directive include : permet d’inclure le contenu d’un autre fichier,
comme un entête
• Directive taglib : déclarer une bibliothèque de balises
• Les directives peuvent apparaître n’importe où dans la page
• Une directive peut apparaître plusieurs fois
Formation Java Server Faces alphorm.com™©
Les références bibliographiques
• Java EE 7 The Big Picture, Oracle
• Java EE Guide de développement Web en Java
Formation Java Server Faces alphorm.com™©
Directive page pour les langages utilisés
• language (java): Spécifier le langage utilisé (vraiment utile ?)
• isELIgnored (false): Ne pas utiliser Expression Language
• import : Importer des classes Java
Formation Java Server Faces alphorm.com™©
Directive page pour le runtime
• autoFlush (true): vidage du buffer automatique ou non
• buffer (dép. impl.): spécifie la taille minimum du tampon
• isThreadSafe (true): spécifie si la page JSP peut gérer plusieurs threads
en même temps
Formation Java Server Faces alphorm.com™©
Directive page pour les erreurs
• isErrorPage (false) : déclare la page courante comme page d’erreur
• errorPage : déclare la page d’erreur à utiliser
Formation Java Server Faces alphorm.com™©
Directives include et taglib
• Include
Avec file pour spécifier le fichier à inclure
• Taglib
Avec uri pour spécifier le nom du fichier
Avec prefix pour spécifier le préfixe xml
Formation Java Server Faces alphorm.com™©
Il n’y a plus qu’à…
Formation Java Server Faces alphorm.com™©
Il n’y a plus qu’à…
Formation Java Server Faces alphorm.com™©
Il n’y a plus qu’à…
Formation Java Server Faces alphorm.com™©
Il n’y a plus qu’à…
Formation Java Server Faces alphorm.com™©
Usage des JavaBeans
• Utiliser une action jsp:useBean
Avec id : référence vers le bean
Avec class : nom de la classe du bean
Avec scope : portée du bean (page, request, session, application)
• Puis récupérer une propriété avec jsp:getProperty (attributs name, property)
• Positionner une propiété avec jsp:setProperty ( attributs name, property, value)
Formation Java Server Faces alphorm.com™©
Les actions JSP
• Action jsp:forward, page=…. Réalise un forward vers une autre page
• Action jsp:include page= Réalise un include, éventuellement paramétré
avec jsp:param
• Action jsp:plugin permet de solliciter une applet
• Action jsp:text permet de générer du texte (pour EL)
• Actions jsp:element, jsp:attribute et jsp:body permettent de générer du
XML
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Définition de JavaBeans
• Usage des JavaBeans
• Les actions JSP
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Les balises JSP
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Les balises JSP standards
• La balise forEach
• La balise if
Formation Java Server Faces alphorm.com™©
Les balises standards
• JSP définit des balises
• Standard : pour toute page JSP
• Pour les données SQL
• Pour le XML et la manipulation de texte
• Des manipulations de chaînes de caractères
• Nécessite la déclaration de la bibliothèque utilisée
Formation Java Server Faces alphorm.com™©
La balise forEach
• Permet l’itération
Sur une séquence de nombres, avec un incrément
Sur un conteneur
Formation Java Server Faces alphorm.com™©
La balise if
• Le corps de la balise que si l’attribut test est évalué à vrai
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Architecture
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Architecture
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Architecture
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Architecture
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Déclaration de la balise
• Dans un fichier .tld
• Fait le lien entre le nom de la balise et la classe Java
• Peut déclarer des attributs (de balise)
Formation Java Server Faces alphorm.com™©
Utilisation de la balise
• Déclarer l’usage de la bibliothèque de balise
• Utiliser a balise personnalisée
Formation Java Server Faces alphorm.com™©
Balise vs JavaBean
• Les deux cherchent à séparer le code Java de la présentation
• La mise en œuvre des JavaBean semble plus simple
• Les balises personnalisées permettent une syntaxe plus riche
• Les balises personnalisées n’ont que la portée de page
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Création d’une balise personnalisée
• Déclaration de la balise
• Utilisation de la balise
• Balise vs JavaBean
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Une application JSF
La technologie JSF
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Qu’est-ce qu’une application JSF ?
• Une application JSF simple
• Le modèle de l’interface utilisateur
• Le modèle de rendu
• Le modèle de conversion
• Le modèle d’événement
• Le modèle de validation
• Le modèle de navigation
Formation Java Server Faces alphorm.com™©
Qu’est-ce qu’une application JSF ?
• JSF est un framework de composants côté serveur pour construire des
applications Web Java
• JSF contient : une API pour gérer les événements, la validation, et la
conversion des données, définir la navigation, supporter
l’internationalisation ET des balises pour intégrer ces composants dans
les pages Web et les connecter à des objets côté serveur
• JSF permet d’alléger les tâches de construction de l’application : créer
les pages web, placer les composants dans la page, lier les composants
aux données, gérer les événements, sauver et restaurer les états de
l’application, réutiliser les composants
Formation Java Server Faces alphorm.com™©
Une application JSF simple
• Exemple avec 2 pages web avec Facelets et 1 bean managé
• Application compilée lors du premier accès à index.xhtml
• Un arbre de composants est placé dans FacesContext, puis rempli et lié à l’objet
de type Hello
• La vue est rendue au client
• L’arbre est détruit
Formation Java Server Faces alphorm.com™©
Le modèle de l’interface utilisateur
• Un composant est graphique ou non
• Un composant graphique peut être simple ou composé
• L’architecture JSF fournit :
des javax.faces.component.UIComponent spécifiant l’état et le comportement
graphique
un modèle de rendu
un modèle de conversion qui définit comment enregistrer les convertisseurs
sur les composants
un modèle d’événements pour gérer les événements sur les composants
un modèle de validation pour enregistrer les validateurs sur les composants
Formation Java Server Faces alphorm.com™©
Plan
• Les parties de l’application
• Les outils de développement
• Un servlet
• Un EJB
• Une entité
Formation Java Server Faces alphorm.com™©
Les composants graphiques
• UIInput : une entrée, sous classe de UIOutput
• UIMessage : un message d’erreur localisé (et UIMessages)
• UIOutcomeTarget : un lien, ou bouton
• UIPanel : gestion des composants
• UISelect * : gestion de sélections
• UIViewRoot : racine des composants dans la vue
• Les composants implémentent des interfaces de comportement :
ActionSource, EditableValueHolder, StateHolder, NamingContainers, …
Formation Java Server Faces alphorm.com™©
Le modèle de rendu
• Une classe de rendu séparée des classes de composants :
Adapter le rendu à un client ou un type de client
Changer l’apparence des composants sur une page
• Un « render kit » correspond à un type de client
Un ensemble de classes Renderer pour chaque composant
Le rendu est choisi avec la balise : commandButton vs commandLink
Formation Java Server Faces alphorm.com™©
Le modèle de conversion
• Un composant peut être associé à un objet côté serveur
• L’application voit les données de deux façons
La vue modèle : les types de données
La vue présentation : une façon de lire ou modifier les données
• Les conversions sont automatiques
• Pour changer les conversions standards, enregistrer une sous-classe de
javax.faces.convert.Converter sur un UIOutput
Formation Java Server Faces alphorm.com™©
Le modèle d’événements
• Conforme au modèle classique des JavaBeans
• Les événements sont :
Les événements applicatifs
• Liés aux actions : émis par les boutons et les liens
• Liés aux changements de valeur : émis par UIInput
Les événements systèmes
• Correspondent au cycle de vie de l’application
Les événements de données
• Une ligne de UIData qui change
Formation Java Server Faces alphorm.com™©
Le modèle de validation
• La validation est exécutée avant la mise à jour des données
• Des classes standards, dérivant de javax.faces.validator.Validator
• Des balises pour la mise en place dans le html
• Possibilité de déclarer un validateur qui s’applique pour tous les input
• Possibilité de créer son propre validateur
Formation Java Server Faces alphorm.com™©
Les parties de l’application
• Une application complète JEE possède les parties suivantes
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Qu’est-ce qu’une application JSF ?
• Une application JSF simple
• Le modèle de l’interface utilisateur
• Le modèle de rendu
• Le modèle de conversion
• Le modèle d’événement
• Le modèle de validation
• Le modèle de navigation
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
La navigation
La technologie JSF
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• La navigation implicite
• La navigation définie dans le xml
• La navigation contrôlée par les beans
Formation Java Server Faces alphorm.com™©
La navigation implicite
• La page xhtml contient le nom de la page cible
• L’attribut action référence par défaut un nom
• Le serveur ajoute « xhtml » comme extension pour trouver la page
• Dans cet exemple, reponse.xhtml est une page accessible
Formation Java Server Faces alphorm.com™©
La navigation dans un fichier xml
• La configuration de la navigation hors des pages xhtml
• Un nom « logique » est utilisé dans la page xhtml
• Ce nom logique associé à l’id de la vue
Correspond à une règle
Formation Java Server Faces alphorm.com™©
La navigation contrôlée par les beans
• La commande est envoyée à un bean
• Appel d’une méthode du bean
• Le retour du bean correspond au nom logique utilisé ensuite
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• La navigation implicite
• La navigation définie dans le xml
• La navigation contrôlée par les beans
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Le cycle de vie
La technologie JSF
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Requête initiale ou postback
• La classe FacesContext
• L’attribut immediate
Formation Java Server Faces alphorm.com™©
Requête initiale et postback
• Les deux étapes essentielles sont
Execute
• Subdivisée en plusieurs étapes : Restore View, Apply Request,…
Render
• Rendu de la réponse vers le client
Formation Java Server Faces alphorm.com™©
La classe FacesContext
• Nom complet javax.faces.context.FacesContext
• Contient la vue à rendre au client
• FacesContext.renderResponse passe directement à l’étape de rendue
Cas de la requête initiale
• FacesContext.responseComplete évite l’étape de rendu
Cas d’un passage à une application sans composant
Formation Java Server Faces alphorm.com™©
L’attribut immediate
• Cet attribut va forcer la validation, les événements et les conversions à
être évalués dans la phase Apply Request
• Il faut la cohérence entre la valeur de cet attribut sur un champ d’entrée
et sur les actions correspondantes
• Par exemple, si un bouton a cet attribut à vrai, il est traité avant que les
données des champs ne soient mises à jour
Formation Java Server Faces alphorm.com™©
Les outils de développement
• Netbeans 8.1 JEE
• Le téléchargement est lié à
Glassfish, implémentation de référence pour les serveurs JEE
Tomcat, implémentation de référence pour la partie Web
• Maven comme environnement de construction en lot
Résoud les dépendances et télécharge les bibliothèques nécessaires
Formation Java Server Faces alphorm.com™©
Les outils de développement
• Netbeans 8.1 JEE
• Le téléchargement est lié à
Glassfish, implémentation de référence pour les serveurs JEE
Tomcat, implémentation de référence pour la partie Web
• Maven comme environnement de construction en lot
Résoud les dépendances et télécharge les bibliothèques nécessaires
Formation Java Server Faces alphorm.com™©
Les outils de développement
• Netbeans 8.1 JEE
• Le téléchargement est lié à
Glassfish, implémentation de référence pour les serveurs JEE
Tomcat, implémentation de référence pour la partie Web
• Maven comme environnement de construction en lot
Résoud les dépendances et télécharge les bibliothèques nécessaires
Formation Java Server Faces alphorm.com™©
Les outils de développement
• Netbeans 8.1 JEE
• Le téléchargement est lié à
Glassfish, implémentation de référence pour les serveurs JEE
Tomcat, implémentation de référence pour la partie Web
• Maven comme environnement de construction en lot
Résoud les dépendances et télécharge les bibliothèques nécessaires
Formation Java Server Faces alphorm.com™©
Les bibliothèques supportées
• Balises JSF Facelets, préfixe ui:, exemple ui:insert
• Balises JSF HTML, préfixe h:, exemple h:head
• Balises JSF Core, préfixe f:, exemple f:actionListener
• Balises elements, préfixe jsf:, exemple jsf:id
• Balises attributs, préfixe p:, exemple p:type
• Balises composite, préfixe cc:, exemple cc:interface
• Balises JSTL Core, préfixe c:, exemple c:forEach
• Balises fonctions, préfixe fn:, exemple fn:toUpperCase
Formation Java Server Faces alphorm.com™©
Le cycle de vie de l’application
• première requête, un UIViewRoot est créé et placé dans le FacesContext
• UIViewRoot est remplie avec les composants
• La vue est rendue au client
• L’état est conservé
• Le client interagit avec la vue, conduisant à la création d’une nouvelle
ou la restauration de l’ancienne
Formation Java Server Faces alphorm.com™©
Exemple d’application
• Créer les beans managés
• Créer les pages avec les balises de composants
• Définir la navigation
• Configurer l’application
• Déclarer les beans managés
Formation Java Server Faces alphorm.com™©
Les beans managés
• Chaque page est connectée à un bean
• Plusieurs pages peuvent se connecter sur le même bean
• Annoté @Named, pour être utilisé via EL
• Annoté d’une portée particulière, pour être utilisable dans la requête, la
session, l’application…
Formation Java Server Faces alphorm.com™©
Un servlet
• Une classe héritant de HttpServlet
• Traite les réponses HTTP
• Contient des références aux EJB
Formation Java Server Faces alphorm.com™©
Configurer l’application
• Configurer le servlet dans web.xml
• Page de démarrage de l’application
• Configuration de faces-config.xml
Formation Java Server Faces alphorm.com™©
Divers
• Une page template est un modèle récurrent dans l’application
Défini avec ui:insert et utilisé avec ui:define
• Il est possible de définir des composants réutilisables
Défini avec composite:interface, composite:implementation,…
• Les contrats sont des paramétrages de l’application
Plusieurs parties de l’application ont des contrats différents
• Les éléments et attributs « pass-through »
Envoyés directement au client en tant que HTML5
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Les facelets
• Le cycle de vie de l’application
• Exemple
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Construire une
application Facelets
Les facelets
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Préparer un template
• Créer les parties
• Créer des composites
Formation Java Server Faces alphorm.com™©
Préparer un template
• Grâce à la balise ui:insert
• Directement avec NetBeans
Formation Java Server Faces alphorm.com™©
Créer les parties
• Les clients du template redéfinissent les zones
• Grâce aux balises
ui:composition pour introduire le template utilisé
ui:define pour placer du contenu
Formation Java Server Faces alphorm.com™©
Créer des composites
• Définir les attributs du composant
• Puis composer le contenu
Formation Java Server Faces alphorm.com™©
Utiliser ce composite
• Référencer le fichier sauver dans un répertoire
• Puis utiliser ce composant comme les autres
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Préparer un template
• Créer les parties
• Créer des composites
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Les balises HTML5
Les facelets
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Les éléments pass-through
• Les attributs pass-through
• Exemples
Formation Java Server Faces alphorm.com™©
Les éléments pass-through
• Utiliser les balises HTML5
• Les gérer comme des éléments UIComponent
• Mettre un attribut spécifique permettant le traitement
Formation Java Server Faces alphorm.com™©
Les attributs pass-through
• Les attributs pass-through sont envoyés directement au navigateur
• N’existent pas sur les éléments JSF
Formation Java Server Faces alphorm.com™©
Exemples
Balise Identifiant Facelets
a jsf:action h:commandlink
body h:body
input type=button h:commandButton
input type=checkbox h:selectBooleanCheckBox
input type=date h:inputText
input type=password h:inputSecret
link h:outputStyleSheet
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Les éléments pass-through
• Les attributs pass-through
• Exemples
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
La syntaxe de EL
Expression Language
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Vue générale
• Evaluation immédiate
• Evaluation différée
Formation Java Server Faces alphorm.com™©
Vue générale
• Permet la communication entre la couche Web et les beans managés
• La couche Web = la couche de présentation
• Les beans managés = la couche de logique de l’application
• EL est utilisé par :
JSP
JSF
CDI
Formation Java Server Faces alphorm.com™©
Un EJB
• Tout simplement un POJO, qui s’occupe de traitement logiciel
• Référence la partie base de données
• Implémente la logique applicative
Formation Java Server Faces alphorm.com™©
Evaluation immédiate
• L’expression est évaluée dès que la page est rendue
• Utilise la syntaxe ${…}
• Pas forcément très pratique, étant donné le cycle de vie des pages
• Utilisé pour des données statiques ou fixes durant l’application
Formation Java Server Faces alphorm.com™©
Evaluation différée
• L’expression utilise la syntaxe #{…}
• Le moment de l’évaluation va dépendre de l’endroit
• Requête initiale : lecture des nom et mot de passe
• Postback : positionnement des valeurs
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Vue générale
• Evaluation immédiate
• Evaluation différée
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Les expressions de
valeurs
Expression Language
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Expression générale
• Référencement d’objets
• Référencement de propriétés
• Les littéraux
• Les paramètres de méthodes
• Utilisation des expressions de valeurs
Formation Java Server Faces alphorm.com™©
Expression générale
• Les expressions de valeurs peuvent être r-value ou l-value
Utilisées en lecture ou en écriture
• Les expressions immédiates ne sont que r-value
• Avec JSF :
Requête initiale : lit l’expression
Postback : éventuellement positionnement de la valeur
Formation Java Server Faces alphorm.com™©
Référencement d’objets
• L’expression démarre sur un objet de haut-niveau :
Des paramètres, variables EL, beans managés, objets implicites, classes
• Expression à base de ${objet}
• Il est possible de changer la façon dont le serveur retrouve l’objet
• Dans les cas des constantes d’énuméré
Utiliser directement le nom de la constante, préfixé du nom de l’enum
Formation Java Server Faces alphorm.com™©
Référencement de propriétés
• Utiliser la notation de sélection « . » ou « [ ] »
• Par exemple :
• Il est possible d’accéder aux static sur des classes : Boolean.FALSE
• La syntaxe « [ ] » permet d’accéder au ième élément d’une collection
• Pour les maps, les deux syntaxes sont possibles
Formation Java Server Faces alphorm.com™©
Les littéraux
• Quelques littéraux sont prédéfinis
Booléens : true, false,
Entiers : comme Java
Flottants : comme Java
Texte : entre double ou simple quotes
Null : null
Formation Java Server Faces alphorm.com™©
Les paramètres de méthodes
• Les syntaxes « . » ou « [ ] » peuvent être utilisées
• Ajouter des parenthèses
Formation Java Server Faces alphorm.com™©
Utilisation des expressions de valeurs
• Avec le $, dans les textes statiques et tous les attributs qui l’acceptent
• L’évaluation se fera au rendu de la page
• Si plusieurs expressions se suivent, elles sont évaluées de gauche à
droite
• Une expression peut contenir l’opérateur de concaténation
Formation Java Server Faces alphorm.com™©
Une entité
• Une classe annotée
• Déclare une clé
• Peut être accompagnée des instructions de base de donnée
Formation Java Server Faces alphorm.com™©
Une entité
• Une classe annotée
• Déclare une clé
• Peut être accompagnée des instructions de base de donnée
Formation Java Server Faces alphorm.com™©
Une entité
• Une classe annotée
• Déclare une clé
• Peut être accompagnée des instructions de base de donnée
Formation Java Server Faces alphorm.com™©
Une entité
• Une classe annotée
• Déclare une clé
• Peut être accompagnée des instructions de base de donnée
Formation Java Server Faces alphorm.com™©
Les expressions lambda
• Equivalent à une expression de valeur avec paramètres
• Syntaxe identique à Java 8
• Peut être utilisée en paramètre de méthode
Formation Java Server Faces alphorm.com™©
Opérations sur les collections
• Création de set avec { }, de liste avec [ ], de map avec {a:b}
• Les stream java et certaines de leurs opérations sont applicables en EL
filter, map, min, reduce, …
Formation Java Server Faces alphorm.com™©
Exemples d’opérateurs
• Il est possible d’appliquer des opérateurs
Arithmétiques
Logiques
Relationels
Conditionel
…
Formation Java Server Faces alphorm.com™©
Mots réservés
• Certains mots réservés ne peuvent pas être utilisés en EL :
And, or, not, eq, ne …
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Syntaxe générale
• Lambda expressions
• Opérations sur des collections
• Exemples d’opérateurs
• Mots réservés
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Ajouter des
composants
JSF dans les pages
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Vue générale
• Les composants de la bibliothèque HTML
• Les attributs habituels
• Les formulaires
Formation Java Server Faces alphorm.com™©
Vue générale
• Une page JSF typique contient
Les espaces de nommage déclarant les bibliothèques utilisées
Les définitions de entête et corps de page
Un formulaire
• Pour construire la page JSF, il faut au moins la bibliothèque HTML et la
bibliothèque core.
• Un préfixe sera attribué à chacune de ces bibliothèques, en général
« h: » et « f: »
Formation Java Server Faces alphorm.com™©
Les composants de la bibliothèque HTML
• Représentation des éléments HTML
• A l’intérieur d’un formulaire
• Gère les entrées utilisateur, pour la saisie ou la restitution
Formation Java Server Faces alphorm.com™©
Les composants de la bibliothèque HTML
Balise
h:commandButton Soumettre un formulaire
h:commandLink Lien
h:form Définir un formulaire
h:graphicImage Afficher une image
h:inputFile Pour charger un fichier
h:inputText Entrer un texte
h:inputSecret Entrer un mot de passe
h:inputHidden Cacher une variable dans la page
h:inputTextArea Entrer un texte multiligne
Formation Java Server Faces alphorm.com™©
Les composants de la bibliothèque HTML
Balise
h:outputLabel Afficher un texte
h:outputText Afficher un texte
h:message Afficher un message
h:panelGrid Afficher une table
h:panelGroup Grouper des composants
h:selectOneMenu Permettre la sélection d’un élément
h:selectBooleanCheckbox Changer la valeur d’une checkbox
h:dataTable Afficher une table de données
h:column Une colonne dans la table
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Les parties de l’application
• Les outils de développement
• Un servlet
• Un EJB
• Une entité
Formation Java Server Faces alphorm.com™©
Les formulaires
• Le formulaire contient les composants qui présentent les données ou
qui servent à entrer les données
• Utiliser la balise <h:form>
• Plusieurs formulaires sont possibles dans une page, mais seules les
données liées à ce formulaire seront envoyées lors du postback de
soumission
• Le formulaire ne propose aucune disposition des éléments dans la page
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Vue générale
• Les composants de la bibliothèque HTML
• Les attributs habituels
• Les formulaires
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Ajouter un
composant texte
JSF dans les pages
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Les différents types de textes
• Les textes en entrée
• Les textes en sortie
• Les composants inputText et inputSecret
• Les composants outputLabel et outputLink
• Utiliser outputFormat
Formation Java Server Faces alphorm.com™©
Les différents types de textes
• Par composants textes non entendons des composants qui permettent
de voir ou d’éditer du texte
• Les labels permettent juste d’afficher du texte
• Les champs permettent d’éditer du texte
Uni ou multilignes
• Les champs de mots de passe
Formation Java Server Faces alphorm.com™©
Les textes en entrée
• Différentes balises sont possibles :
h:inputHidden cache une variable dans la page
h:inputSecret édite une ligne de texte, remplacé par des astérisques
h:inputText édite une ligne de texte
h:inputTextArea édite plusieurs lignes de texte
•
Formation Java Server Faces alphorm.com™©
Les attributs des champs en entrée
converter identifie un convertisseur
converterMessage spécifie un message d’erreur lié au convertisseur
dir indique la direction d’écriture ltr ou rtl
label identifie le composant dans les messages d’erreur
lang spécifie le code langage
required remplissage obligatoire ou non
requiredMessage message lié à l’erreur de ne pas avoir rempli le champ
validator spécifie le bean valideur de ce champ texte (EL)
validatorMessage spécifie le message lié
valueChangeListener spécifie un bean traitant le contenu du champ
Formation Java Server Faces alphorm.com™©
Les textes en sortie
• Différentes balises sont possibles :
h:outputFormat affiche un message formaté
h:outputLabel affiche un label lecture seule
h:outputLink affiche un lien vers une autre page, sans action
h:outputText affiche un texte d’une ligne
Formation Java Server Faces alphorm.com™©
Les composants inputText et inputSecret
• Pour saisir un texte
• Pour saisir un mot de passe
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Packaging et
déploiement
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Utiliser outputFormat
• Formater un texte
• Utilise le format de java.text.MessageFormat
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Les différents types de textes
• Les textes en entrée
• Les textes en sortie
• Les composants inputText et inputSecret
• Les composants outputLabel et outputLink
• Utiliser outputFormat
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Ajouter un composant
commande
JSF dans les pages
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Rôles des composants de commande
• Rendre un bouton
• Rendre un lien
Formation Java Server Faces alphorm.com™©
Rôles des composants de commande
• Réaliser des actions, soumettre un formulaire ou naviguer
• h:commandButton est rendu comme un bouton
• h:commandLink est rendu comme un lien
• Ces composants possèdent 2 attributs remarquables :
action chaîne de caractère ou expression EL pour déterminer la destination
actionListener pointe sur une méthode déclenchée lors de l’action
Formation Java Server Faces alphorm.com™©
Rendre un bouton
• Utiliser h:commandButton
• Rendu sous la forme de <input type= submit
• Pour soumettre un formulaire
• Déclenche une action, plusieurs façons de réaliser la navigation
Formation Java Server Faces alphorm.com™©
Rendre un lien
• Utiliser h:commandLink
• Rendu sous la forme d’un <a>
• Il est possible de contenir un <h:outputText>
• Le rendu de ce composant génère du javascript
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Rôles des composants de commande
• Rendre un bouton
• Rendre un lien
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Ajouter un composant
de sélection
JSF dans les pages
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Les composants de sélection
• Les composants à sélection unique
• Les composants à sélection multiple
• Afficher le résultat de la sélection
Formation Java Server Faces alphorm.com™©
Les composants de sélection
• Pour sélectionner dans une liste, dans un ensemble de choix
• Sélection unique ou multiple
• La liste peut être statique ou dynamique
• Rendu par checkbox, radiobutton, drop-down menu ou listbox
Formation Java Server Faces alphorm.com™©
Les composants à sélection unique
• h:selectBooleanCheckbox rend une checkbox, correspond à un booléen
• h:selectOneRadio rend un ensemble de radiobutton
• h:selectOneMenu rend une liste scrollable
• h:selectOneListBox rend une liste non scrollable
Formation Java Server Faces alphorm.com™©
Plan
• Fichiers war
• Fichiers jar
• Fichiers ear
Formation Java Server Faces alphorm.com™©
Afficher le résultat de la sélection
• Passer par le binding pour lier les composants aux beans et inversement
• Récupérer la valeur sélectionnée par l’attribut value
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Les composants de sélection
• Les composants à sélection unique
• Les composants à sélection multiple
• Afficher le résultat de la sélection
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Ajouter des
composants liés aux
données
JSF dans les pages
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Objectifs de ces composants
• Sources de données
• Attributs optionnels
Formation Java Server Faces alphorm.com™©
Objectifs de ces composants
• Représenter une collection d’objets
• Sous la forme d’une table HTML
• Utiliser le composant h:dataTable
• Doit être utilisé avec h:column, pour spécifier les caractéristiques de
chaque colonne affichée
Formation Java Server Faces alphorm.com™©
Sources de données
• La source de données peut être
Une collection de beans
Un bean simplement
Un objet javax.faces.model.DataModel
Un objet java.sql.ResultSet
Un objet javax.servlet…. Sql.Result
Un objet javax.sql.RowSet
Formation Java Server Faces alphorm.com™©
Attributs optionnels
• Dans h:dataTable , rows et first spécifient le nombre et la première ligne
• Les styles CSS :
captionClass titre de la table
columnClasses les colonnes
footerClass le bas de page
headerClass le haut de page
rowClasses les lignes
styleClass le style de la table
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Objectifs de ces composants
• Sources de données
• Attributs optionnels
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Ajouter des
composants divers
JSF dans les pages
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Afficher une image
• Afficher un message
• Mettre en place un marque-page
Formation Java Server Faces alphorm.com™©
Afficher une image
• Le composant est h:graphicImage
• Référence directe vers une image
• Ou bien utiliser les ressources web
Formation Java Server Faces alphorm.com™©
Fichiers war
• Le déploiement d’une application Web est décrit par un fichier
• Sorte de fichier ZIP
• Structure prédéfinie
La racine contient les fichiers textes, HTML, JSP, JSF
Un répertoire WEB-INF qui contient les servlets et les classes Java
Formation Java Server Faces alphorm.com™©
Mettre en place un marque-page
• Les composants h:link ou h:button
• Permettent un lien vers une page
• Utilisent le mapping faces-config
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Afficher une image
• Afficher un message
• Mettre en place un marque-page
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Grouper les
composants
JSF dans les pages
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Grouper en table
• Grouper des composants
Formation Java Server Faces alphorm.com™©
Grouper en table
• Utiliser h:panelGrid, rendu comme un TABLE
• Spécifier
le nombre de colonnes, titre, etc
Des styles css pour les différentes parties de la table
Peut contenir entête et bas de page
Formation Java Server Faces alphorm.com™©
Grouper des composants
• Utiliser h:panelGroup pour grouper des composants
• Ils apparaissent comme un seul composant
• Rendu sous la forme de div ou de span
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Grouper en table
• Grouper des composants
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Les convertisseurs
standards
Converters etc
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Rôles et usage des convertisseurs
• DateTimeConverter
• NumberConverter
Formation Java Server Faces alphorm.com™©
Rôles et usages des convertisseurs
• Transformer une chaîne de caractères en un objet
• Et vis versa
• Standards : BigDecimal, BigInteger, Boolean, Byte, DateTime, Double …
Formation Java Server Faces alphorm.com™©
DateTimeConverter
• Cible le type java.util.Date
• Nécessite la définition d’un style (format)
• Propose les attributs
binding, dateStyle, for, locale, pattern, timeStyle, timeZone, type
Formation Java Server Faces alphorm.com™©
NumberConverter
• Utiliser le composant
h:convertNumber
• Avec les attributs
binding
currencyCode
for
groupingUsed
integerOnly
locale
maxFractionDigits,
maxIntegerDigits, min-
pattern
type
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Rôles et usage des convertisseurs
• DateTimeConverter
• NumberConverter
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Les listeners
Converters etc
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Rôle et intérêt des listeners
• Gérer les changements de valeurs
• Gérer les actions
Formation Java Server Faces alphorm.com™©
Rôle et intérêt des listeners
• Peut être une classe ou une méthode
• Utiliser les attributs valueChangeListener ou actionListener pour une
méthode
• Utiliser les balises f: correspondantes
Formation Java Server Faces alphorm.com™©
Gérer les changements de valeurs
• Utilisé avec les attributs :
type pour donne le nom de la classe du listener ValueChangeListener
binding pour référencer un objet qui implémente
Formation Java Server Faces alphorm.com™©
Fichiers JAR
• La partie modèle est stockée dans un fichier d’extension .jar
• Structure prédéfinie similaire
• Le répertoire META-INF contient des infos sur la persistence
Le fichier persistence.xml
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Rôle et intérêt des listeners
• Gérer les changements de valeurs
• Gérer les actions
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Les validateurs
Converters etc
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Rôle et objectifs des validateurs
• Valider une valeur
• Utiliser les balises de validation
Formation Java Server Faces alphorm.com™©
Rôle et objectifs des validateurs
• Pour valider les saisies utilisateur
• BeanValidator bean validateur pour le composant
• DoubleRangeValidator limites de valeurs pour les flottants
• LengthValidator limites de valeurs pour les chaînes
• LongRangeValidator limites de valeurs pour les entiers
• RegexValidator correspondance sur une expression régulière
• RequiredValidator vérifie la présence d’une valeur
Formation Java Server Faces alphorm.com™©
Valider une valeur
• Plusieurs possibilités
Utiliser les attributs dans le tag
Utiliser l’attribut validator pour cibler une méthode de validation
Encapsuler une balise de validation et positionner validatorId
• Ne peut être utiliser que sur les composants qui permettent l’édition de
valeurs
Formation Java Server Faces alphorm.com™©
Utiliser les balises de validation
• Avec des attributs
• Avec des balises imbriquées
Formation Java Server Faces alphorm.com™©
Expression régulière
• Une expression régulière peut permettre de vérifier
Mots de passe, email, téléphones, …
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Rôle et objectifs des validateurs
• Valider une valeur
• Utiliser les balises de validation
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Généralités
Les beans managés
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Les liaisons entre composant et bean
• Exemple de liaisons
Formation Java Server Faces alphorm.com™©
Les liaisons entre composant et bean
• Un composant peut être lié par sa valeur ou par son instance
• Par la valeur suppose d’affecter l’attribut value
La valeur est dans le composant
• Par l’instance, il faut utiliser binding
La valeur est dans le bean
Formation Java Server Faces alphorm.com™©
Fichiers EAR
• Le fichier en extension ear regroupe les deux précédents
• Structure :
/META-INF
• /MANIFEST.MF
/<fichier web>.war
/<fichier ejb>.jar
• Ce fichier décrit donc le déploiement sur un serveur JEE
Formation Java Server Faces alphorm.com™©
La liaison de « binding »
• Les attributs du composant peuvent être modifiés par le bean
Accès via la programmation applicative
Le bean instancie le composant
• Utilisée lorsque Java a besoin de modifier les attributs qui commandent
le rendu des composants
Formation Java Server Faces alphorm.com™©
Exemples de laisons
• Les liaisons par valeur peuvent être plus complexes qu’un accès à une
propriété de bean
Expression booléenne
Une propriété venant d’un paramètre
Une propriété de bean
Une valeur dans un tableau
Une valeur dans une collection
Une propriété d’un objet dans une collection
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Les liaisons entre composant et bean
• Exemple de liaisons
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Lier les valeurs
Les beans managés
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Mise en œuvre
• Liaison vers les objets implicites
Formation Java Server Faces alphorm.com™©
Mise en oeuvre
• Postionner l’attribut value
• Le bean managé peut être paramétré aussi dans un fichier xml
Formation Java Server Faces alphorm.com™©
Liaison vers un objet implicite
• La valeur peut pointer vers des objets implicites
• Les objets implicites sont :
facesContext, application, initParam, session, view, component, cc, request,
applicationScope, sessionScope, viewScope, requestScope, paramValues,
headerValues, cookie, resource…
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Fichiers war
• Fichiers jar
• Fichiers ear
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Fichiers war
• Fichiers jar
• Fichiers ear
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Fichiers war
• Fichiers jar
• Fichiers ear
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Fichiers war
• Fichiers jar
• Fichiers ear
Formation Java Server Faces alphorm.com™©
La liaison des convertisseurs
• Avec l’attribut binding, lier la propriété du bean au convertisseur etc
• Le bean possède alors l’accès au convertisseur etc
Les attributs peuvent être modifiés
• Il faut que le convertisseur soit imbriqué
Avec l’attribut binding
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Intérêt
• La laison des convertisseurs, listeners et validateurs
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Généralités
Ajax et JSF
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Vue d’ensemble
• Ajax dans JSF
• Ajax dans les facelets
Formation Java Server Faces alphorm.com™©
Vue d’ensemble
• Les interactions peuvent être asynchrones
• Le client peut récupérer des informations sans interférer avec le reste de
la page
• La réponse du serveur est fournie sous la forme de XML
Autre possibilité en JSON
• Avantages attendus
Validation des formulaires en temps réel
Fonctionnalités nouvelles
Mise à jour partielle
Formation Java Server Faces alphorm.com™©
Ajax dans JSF
• Pour utiliser Ajax dans JSF
Ajouter le javascript dans l’application
Utiliser la bibliothèque built-in
• La bibliothèque built-in peut être utilisée dans le code des beans
• Les fonctionnalités peuvent être étendues
• La balise est f:ajax
Formation Java Server Faces alphorm.com™©
Ajax dans les facelets
• Utiliser f:ajax dans un composant standard
• Avec des attributs
render indique les composants à rendre
execute indique les composants à exécuter
onerror, onevent donnent les noms des fonctions js qui gèrent ces cas
…
• Utiliser le javascript jsf.ajax.request()
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Vue d’ensemble
• Ajax dans JSF
• Ajax dans les facelets
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Envoyer une requête
Ajax
Ajax et JSF
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Utiliser l’attribut event
• Utiliser l’attribut execute
• Utiliser l’attribut immediate
• Utiliser l’attribut listener
Formation Java Server Faces alphorm.com™©
Utiliser l’attribut event
• Les valeurs possibles sont click, keyup, mouseover, focus, blur
• Par défaut, correspondance avec l’événement associé au composant
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
L’API Servlet
L’application Web
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Utiliser l’attribut immediate
• Par défaut, vaut false
• Permet d’anticiper le traitement sur ce composant
Formation Java Server Faces alphorm.com™©
Utiliser l’attribut listener
• Décrit une méthode à déclencher
• Correspond à l’événement prévu par event
• Peut être accompagné de render pour spécifier le composant à
remettre à jour
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Utiliser l’attribut event
• Utiliser l’attribut execute
• Utiliser l’attribut immediate
• Utiliser l’attribut listener
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Gérer les erreurs
Ajax et JSF
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Suivre les événements
• Gérer les erreurs
Formation Java Server Faces alphorm.com™©
Suivre les événements
• L’attribut à utiliser est onevent
• La valeur est le nom d’une méthode javascript
• La méthode sera appelée à chaque étape ajax
À savoir begin, complete, success
• La fonction javascript sera appelée avec une donnée
Propriétés responseXML-Text-Code, source, status, type
Formation Java Server Faces alphorm.com™©
Gérer les erreurs
• Utilise l’attribut onerror
• La valeur est une fonction javascript
• Cette fonction reçoit en paramètre une donnée
Propriétés description, errorName, errorMessage
Type=error, Status=emptyResponse, httpError, malformedXML, serverError
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Suivre les événements
• Gérer les erreurs
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Recevoir une réponse
Ajax et JSF
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Recevoir la réponse
• Grouper des composants
• Javascript dans Jsf
Formation Java Server Faces alphorm.com™©
Recevoir la réponse
• Utiliser l’attribut render
• Les valeurs peuvent être @this, @all, @none, @form
• En ciblant le composant, celui-ci fait apparaître la réponse
Formation Java Server Faces alphorm.com™©
Plan
• Ce que fait un Servlet
• Comment créer un Servlet
• Exemple d’application
• La classe HttpServlet
• La classe ServletContext
• La classe HttpSession
• La classe RequestDispatcher
Formation Java Server Faces alphorm.com™©
Javascript dans Jsf
• Le fichier jsf.js est automatiquement fournit au client
• Utiliser h:outputScript pour envoyer un autre fichier .js
• On peut utiliser le contenu de jsf.js explicitement
Mettre en œuvre la fonction request(…)
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Recevoir la réponse
• Grouper des composants
• Javascript dans Jsf
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Annotations sur les
beans managés
Configurer l’application
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Les annotations de portée
• La création en avance
Formation Java Server Faces alphorm.com™©
Les annotations de portée
• Application
Accessible à travers toutes les sessions
• Session
Accessible à travers toutes les requêtes HTTP (une « connexion »)
• Flow
Accessible à travers un flux donné
• Request
Accessible pour une requête
• Dependent
Indique que le bean dépend de la visibilité d’un autre bean
Formation Java Server Faces alphorm.com™©
La création en avance
• Les beans sont normalement créés à la demande
• Provoquer la création en avance d’un bean va faire que le bean existe
avant même d’en avoir besoin
• Utiliser @ManagedBean(eager=true)
accompagnant @ApplicationScope
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Les annotations de portée
• La création en avance
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Configurer les beans
avec XML
Configurer l’application
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Le fichier de configuration
• Intérêt de paramétrer par le fichier xml
Formation Java Server Faces alphorm.com™©
Le fichier de configuration
• Dans faces-config.xml
• La balise <managed-bean>
• Décrire
La classe
Le nom
La portée
Des valeurs initiales pour les propriétés
Formation Java Server Faces alphorm.com™©
Intérêts
• Paramétrage indépendant du code
• Peut être modifié après déploiement
• Ne nécessite pas de recompilation
Formation Java Server Faces alphorm.com™©
Ce que fait un Servlet
• Un servlet est exécuté dans le conteneur Web
• Doit examiner l’entête de requête pour déterminer le type de contenu
attendu par le client
• Récupérer les informations à retourner
• Positionner les informations d’entête de retour
• Ecrire en retour les données attendues
Formation Java Server Faces alphorm.com™©
Ce que fait un Servlet
• Un servlet est exécuté dans le conteneur Web
• Doit examiner l’entête de requête pour déterminer le type de contenu
attendu par le client
• Récupérer les informations à retourner
• Positionner les informations d’entête de retour
• Ecrire en retour les données attendues
Formation Java Server Faces alphorm.com™©
Ce que fait un Servlet
• Un servlet est exécuté dans le conteneur Web
• Doit examiner l’entête de requête pour déterminer le type de contenu
attendu par le client
• Récupérer les informations à retourner
• Positionner les informations d’entête de retour
• Ecrire en retour les données attendues
Formation Java Server Faces alphorm.com™©
Ce que fait un Servlet
• Un servlet est exécuté dans le conteneur Web
• Doit examiner l’entête de requête pour déterminer le type de contenu
attendu par le client
• Récupérer les informations à retourner
• Positionner les informations d’entête de retour
• Ecrire en retour les données attendues
Formation Java Server Faces alphorm.com™©
Ce que fait un Servlet
• Un servlet est exécuté dans le conteneur Web
• Doit examiner l’entête de requête pour déterminer le type de contenu
attendu par le client
• Récupérer les informations à retourner
• Positionner les informations d’entête de retour
• Ecrire en retour les données attendues
Formation Java Server Faces alphorm.com™©
Accès aux textes traduits
• Spécifier le nom du bundle et la clé
• La langue utilisée est la langue du navigateur ou langue par défaut
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Construction des ressources langage
• Configuration des langues
• Accès aux textes traduits
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Faces flows
Configurer l’application
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Définition
• Mise en œuvre
• Configuration
Formation Java Server Faces alphorm.com™©
Définition
• Une portée spécifique des variables : flowScope
• Permet de limiter la validité de certaines données à un enchaînement
• Possède un point d’entrée et un point de retour
• Ressemble à des appels de processus
Formation Java Server Faces alphorm.com™©
Mise en œuvre implicite
• Donner un nom à ce « flow », utiliser ce nom comme action
• Créer un répertoire de ce nom au même niveau que WEB-INF
• Y placer
Un fichier de config <nom_du_flux>.xml (vide)
Un fichier d’entrée <nom_du_flux>.xhtml
Autant de fichiers xhtml que nécessaires
• Un retour
<nom_du_flux>-return.xml
Formation Java Server Faces alphorm.com™©
Configuration
• Le flux peut être configuré
Par fichier
• Dans le répertoire du flux
- Nom du flux, son point de retour
- Les paramètres en entrée
- Les appels à d’autres flux
Par annotations
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Définition
• Mise en œuvre
• Configuration
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
La sécurité
Configurer l’application
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Plan
• Les méthodes d’authentification
• La définition des rôles de sécurité
• La définition des contraintes de sécurité
Formation Java Server Faces alphorm.com™©
Les méthodes d’authentification
• Authentification de base
BASIC utilise une boîte de dialogue standard pour identifier l’utilisateur
• Authentification avec formulaire
FORM utilise une boîte de dialogue spécifique
• Authentification par certificat
Formation Java Server Faces alphorm.com™©
Comment créer un Servlet
• Dériver la classe javax.servlet.http.HttpServlet
• Implémenter les méthodes correspondant au protocole HTTP
GET,POST,HEAD,PUT,TRACE,OPTIONS, et la méthode service
• Utiliser les classes de requête et de réponse
La classe javax.servlet.http.HttpServletRequest
La classe javax.servlet.http.HttpServletResponse
Formation Java Server Faces alphorm.com™©
Définition des contraintes de sécurité
• L’accès à des ressources va être limité à certains rôles
Définir les ressources protégées
Définir les rôles autorisés
• Dans web.xml
Formation Java Server Faces alphorm.com™©
Ce qu’on a couvert
• Les méthodes d’authentification
• La définition des rôles de sécurité
• La définition des contraintes de sécurité
Formation Java Server Faces alphorm.com™©
Site : http://www.alphorm.com
Blog : http://blog.alphorm.com
Conclusion
Fabien Brissonneau
Consultant, concepteur et formateur
Objets Logiciels
Formation Java Server Faces alphorm.com™©
Nous avons vu …
• Chapitre 1 : L’application Web
• Chapitre 2 : La technologie JSF
• Chapitre 3 : Les facelets
• Chapitre 4 : Expression Language
• Chapitre 5 : JSF dans les pages Web
• Chapitre 6 : Converters, Listeners et Validators
• Chapitre 7 : Les beans managés
• Chapitre 8 : Ajax et JSF
• Chapitre 9 : Configurer l’application JSF
Formation Java Server Faces alphorm.com™©
Et la suite ?
• La formation JEE persistence
• Liaison aux données par Hibernate
Formation Java Server Faces alphorm.com™©
Conclusion
Merci et à bientôt !

Más contenido relacionado

La actualidad más candente

Alphorm.com Support de la formation Vmware Esxi 6.0
Alphorm.com Support de la formation Vmware Esxi 6.0Alphorm.com Support de la formation Vmware Esxi 6.0
Alphorm.com Support de la formation Vmware Esxi 6.0Alphorm
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm
 
Alphorm.com Formation RDS Windows Server 2012 R2
Alphorm.com Formation RDS Windows Server 2012 R2Alphorm.com Formation RDS Windows Server 2012 R2
Alphorm.com Formation RDS Windows Server 2012 R2Alphorm
 
alphorm.com - Formation Veeam Backup & Replication 6.5
alphorm.com - Formation Veeam Backup & Replication 6.5alphorm.com - Formation Veeam Backup & Replication 6.5
alphorm.com - Formation Veeam Backup & Replication 6.5Alphorm
 
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Configuration et...
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Configuration et...Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Configuration et...
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Configuration et...Alphorm
 
Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs Alphorm
 
alphorm.com - Citrix XenServer 6 Administration (A20)
alphorm.com - Citrix XenServer 6 Administration (A20)alphorm.com - Citrix XenServer 6 Administration (A20)
alphorm.com - Citrix XenServer 6 Administration (A20)Alphorm
 
alphorm.com - Formation Windows 8.1 (70-688)
alphorm.com - Formation Windows 8.1 (70-688)alphorm.com - Formation Windows 8.1 (70-688)
alphorm.com - Formation Windows 8.1 (70-688)Alphorm
 
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)alphorm.com - Formation Configuration de SharePoint 2010 (70-667)
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)Alphorm
 
Alphorm.com Formation Windows Server 2019 : Installation et Configuration de ...
Alphorm.com Formation Windows Server 2019 : Installation et Configuration de ...Alphorm.com Formation Windows Server 2019 : Installation et Configuration de ...
Alphorm.com Formation Windows Server 2019 : Installation et Configuration de ...Alphorm
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm
 
Alphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm
 
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultantAlphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultantAlphorm
 
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2 Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2 Alphorm
 
Alphorm.com-Formation Windows Server 2012 R2 (70-411)
Alphorm.com-Formation Windows Server 2012 R2 (70-411)Alphorm.com-Formation Windows Server 2012 R2 (70-411)
Alphorm.com-Formation Windows Server 2012 R2 (70-411)Alphorm
 
alphorm.com - Formation Microsoft Hyper-V 2012
alphorm.com - Formation Microsoft Hyper-V 2012alphorm.com - Formation Microsoft Hyper-V 2012
alphorm.com - Formation Microsoft Hyper-V 2012Alphorm
 
Alphorm.com Formation Java,avancé OCP (1Z0-804)
Alphorm.com Formation Java,avancé OCP (1Z0-804)Alphorm.com Formation Java,avancé OCP (1Z0-804)
Alphorm.com Formation Java,avancé OCP (1Z0-804)Alphorm
 
Tutoriel Vmware
Tutoriel VmwareTutoriel Vmware
Tutoriel Vmwareelharrab
 
Alphorm.com Formation VMware vSphere 7 : What's New (1of2) (MàJ des connaissa...
Alphorm.com Formation VMware vSphere 7 : What's New (1of2) (MàJ des connaissa...Alphorm.com Formation VMware vSphere 7 : What's New (1of2) (MàJ des connaissa...
Alphorm.com Formation VMware vSphere 7 : What's New (1of2) (MàJ des connaissa...Alphorm
 
Alphorm.com Formation KVM
Alphorm.com Formation KVMAlphorm.com Formation KVM
Alphorm.com Formation KVMAlphorm
 

La actualidad más candente (20)

Alphorm.com Support de la formation Vmware Esxi 6.0
Alphorm.com Support de la formation Vmware Esxi 6.0Alphorm.com Support de la formation Vmware Esxi 6.0
Alphorm.com Support de la formation Vmware Esxi 6.0
 
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute DisponibilitéAlphorm.com Formation PostgreSQL, la Haute Disponibilité
Alphorm.com Formation PostgreSQL, la Haute Disponibilité
 
Alphorm.com Formation RDS Windows Server 2012 R2
Alphorm.com Formation RDS Windows Server 2012 R2Alphorm.com Formation RDS Windows Server 2012 R2
Alphorm.com Formation RDS Windows Server 2012 R2
 
alphorm.com - Formation Veeam Backup & Replication 6.5
alphorm.com - Formation Veeam Backup & Replication 6.5alphorm.com - Formation Veeam Backup & Replication 6.5
alphorm.com - Formation Veeam Backup & Replication 6.5
 
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Configuration et...
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Configuration et...Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Configuration et...
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Configuration et...
 
Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs Alphorm.com Formation Drupal 7 pour les utilisateurs
Alphorm.com Formation Drupal 7 pour les utilisateurs
 
alphorm.com - Citrix XenServer 6 Administration (A20)
alphorm.com - Citrix XenServer 6 Administration (A20)alphorm.com - Citrix XenServer 6 Administration (A20)
alphorm.com - Citrix XenServer 6 Administration (A20)
 
alphorm.com - Formation Windows 8.1 (70-688)
alphorm.com - Formation Windows 8.1 (70-688)alphorm.com - Formation Windows 8.1 (70-688)
alphorm.com - Formation Windows 8.1 (70-688)
 
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)alphorm.com - Formation Configuration de SharePoint 2010 (70-667)
alphorm.com - Formation Configuration de SharePoint 2010 (70-667)
 
Alphorm.com Formation Windows Server 2019 : Installation et Configuration de ...
Alphorm.com Formation Windows Server 2019 : Installation et Configuration de ...Alphorm.com Formation Windows Server 2019 : Installation et Configuration de ...
Alphorm.com Formation Windows Server 2019 : Installation et Configuration de ...
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB Administration
 
Alphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft Hyperconvergence
 
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultantAlphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
 
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2 Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
Alphorm.com Formation WSUS (Windows Server Update Services) 3.0 SP2
 
Alphorm.com-Formation Windows Server 2012 R2 (70-411)
Alphorm.com-Formation Windows Server 2012 R2 (70-411)Alphorm.com-Formation Windows Server 2012 R2 (70-411)
Alphorm.com-Formation Windows Server 2012 R2 (70-411)
 
alphorm.com - Formation Microsoft Hyper-V 2012
alphorm.com - Formation Microsoft Hyper-V 2012alphorm.com - Formation Microsoft Hyper-V 2012
alphorm.com - Formation Microsoft Hyper-V 2012
 
Alphorm.com Formation Java,avancé OCP (1Z0-804)
Alphorm.com Formation Java,avancé OCP (1Z0-804)Alphorm.com Formation Java,avancé OCP (1Z0-804)
Alphorm.com Formation Java,avancé OCP (1Z0-804)
 
Tutoriel Vmware
Tutoriel VmwareTutoriel Vmware
Tutoriel Vmware
 
Alphorm.com Formation VMware vSphere 7 : What's New (1of2) (MàJ des connaissa...
Alphorm.com Formation VMware vSphere 7 : What's New (1of2) (MàJ des connaissa...Alphorm.com Formation VMware vSphere 7 : What's New (1of2) (MàJ des connaissa...
Alphorm.com Formation VMware vSphere 7 : What's New (1of2) (MàJ des connaissa...
 
Alphorm.com Formation KVM
Alphorm.com Formation KVMAlphorm.com Formation KVM
Alphorm.com Formation KVM
 

Destacado

Alphorm.com formation Red Hat (RH134)
Alphorm.com formation Red Hat (RH134)Alphorm.com formation Red Hat (RH134)
Alphorm.com formation Red Hat (RH134)Alphorm
 
Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124Alphorm
 
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)Alphorm
 
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin IT
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin ITalphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin IT
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin ITAlphorm
 
Alphorm.com Support de la Formation PromoxVE 4.x
Alphorm.com Support de la Formation PromoxVE 4.xAlphorm.com Support de la Formation PromoxVE 4.x
Alphorm.com Support de la Formation PromoxVE 4.xAlphorm
 
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...Alphorm
 
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015Alphorm.com Support de la formation Programmer en C# avec visual studio 2015
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015Alphorm
 
Alphorm.com Formation JavaFX
Alphorm.com Formation JavaFXAlphorm.com Formation JavaFX
Alphorm.com Formation JavaFXAlphorm
 
Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux Alphorm
 
Alphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm
 
Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6Alphorm
 
Autoformation windev-express-17
Autoformation windev-express-17Autoformation windev-express-17
Autoformation windev-express-17zahir66
 
Méthode : Réalisation d'un projet mobile (Sushee)
Méthode : Réalisation d'un projet mobile (Sushee)Méthode : Réalisation d'un projet mobile (Sushee)
Méthode : Réalisation d'un projet mobile (Sushee)Normandie Web Xperts
 
Programmation événementielle avec Windev
Programmation événementielle avec WindevProgrammation événementielle avec Windev
Programmation événementielle avec WindevGuillaume Cabanac
 
Alphorm.com Formation Autodesk Revit 2018 : L'essentiel
Alphorm.com Formation Autodesk Revit 2018 : L'essentielAlphorm.com Formation Autodesk Revit 2018 : L'essentiel
Alphorm.com Formation Autodesk Revit 2018 : L'essentielAlphorm
 
Alphorm.com Formation CEHV9 III
Alphorm.com Formation CEHV9 IIIAlphorm.com Formation CEHV9 III
Alphorm.com Formation CEHV9 IIIAlphorm
 
Alphorm.com Formation les fondamentaux de Matlab 2013 A
Alphorm.com  Formation les fondamentaux de Matlab 2013 AAlphorm.com  Formation les fondamentaux de Matlab 2013 A
Alphorm.com Formation les fondamentaux de Matlab 2013 AAlphorm
 
alphorm.com - Formation VMware Mirage 3.6
alphorm.com - Formation VMware Mirage 3.6alphorm.com - Formation VMware Mirage 3.6
alphorm.com - Formation VMware Mirage 3.6Alphorm
 

Destacado (20)

Alphorm.com formation Red Hat (RH134)
Alphorm.com formation Red Hat (RH134)Alphorm.com formation Red Hat (RH134)
Alphorm.com formation Red Hat (RH134)
 
Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124Alphorm.com Formation Red Hat RH124
Alphorm.com Formation Red Hat RH124
 
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)
Alphorm.com Support Formation Red Hat Administration Système III RHCSE-(Rh254)
 
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin IT
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin ITalphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin IT
alphorm.com - Formation Windows Server Core 2012 R2 - Guide de l'Admin IT
 
Alphorm.com Support de la Formation PromoxVE 4.x
Alphorm.com Support de la Formation PromoxVE 4.xAlphorm.com Support de la Formation PromoxVE 4.x
Alphorm.com Support de la Formation PromoxVE 4.x
 
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
Alphorm.com Support de la Formation Red Hat Administrateur de Virtualization ...
 
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015Alphorm.com Support de la formation Programmer en C# avec visual studio 2015
Alphorm.com Support de la formation Programmer en C# avec visual studio 2015
 
Alphorm.com Formation JavaFX
Alphorm.com Formation JavaFXAlphorm.com Formation JavaFX
Alphorm.com Formation JavaFX
 
Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux Formation Windev 19,les fondamentaux
Formation Windev 19,les fondamentaux
 
Alphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQL
 
Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6Alphorm.com support de la formation programmer en C# 6
Alphorm.com support de la formation programmer en C# 6
 
Autoformation windev-express-17
Autoformation windev-express-17Autoformation windev-express-17
Autoformation windev-express-17
 
Auto formation *WinDev
Auto formation *WinDev Auto formation *WinDev
Auto formation *WinDev
 
Méthode : Réalisation d'un projet mobile (Sushee)
Méthode : Réalisation d'un projet mobile (Sushee)Méthode : Réalisation d'un projet mobile (Sushee)
Méthode : Réalisation d'un projet mobile (Sushee)
 
Windev extrait
Windev extraitWindev extrait
Windev extrait
 
Programmation événementielle avec Windev
Programmation événementielle avec WindevProgrammation événementielle avec Windev
Programmation événementielle avec Windev
 
Alphorm.com Formation Autodesk Revit 2018 : L'essentiel
Alphorm.com Formation Autodesk Revit 2018 : L'essentielAlphorm.com Formation Autodesk Revit 2018 : L'essentiel
Alphorm.com Formation Autodesk Revit 2018 : L'essentiel
 
Alphorm.com Formation CEHV9 III
Alphorm.com Formation CEHV9 IIIAlphorm.com Formation CEHV9 III
Alphorm.com Formation CEHV9 III
 
Alphorm.com Formation les fondamentaux de Matlab 2013 A
Alphorm.com  Formation les fondamentaux de Matlab 2013 AAlphorm.com  Formation les fondamentaux de Matlab 2013 A
Alphorm.com Formation les fondamentaux de Matlab 2013 A
 
alphorm.com - Formation VMware Mirage 3.6
alphorm.com - Formation VMware Mirage 3.6alphorm.com - Formation VMware Mirage 3.6
alphorm.com - Formation VMware Mirage 3.6
 

Similar a Alphorm.com Formation Java Server Faces

Play Framework
Play FrameworkPlay Framework
Play FrameworkArmaklan
 
JEE_chapitre 1.pdf
JEE_chapitre 1.pdfJEE_chapitre 1.pdf
JEE_chapitre 1.pdfiyadamri
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPYouness Boukouchi
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partageraliagadir
 
Alphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NETAlphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NETAlphorm
 
JEE_Chapter4_JSF_VF (1).pdf
JEE_Chapter4_JSF_VF (1).pdfJEE_Chapter4_JSF_VF (1).pdf
JEE_Chapter4_JSF_VF (1).pdfMahmoudiOussama
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystémeAlgeria JUG
 
20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing systemLeClubQualiteLogicielle
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EESabri Bouchlema
 
Ws811 g formation-ibm-websphere-service-registry-and-repository-v8-0-for-admi...
Ws811 g formation-ibm-websphere-service-registry-and-repository-v8-0-for-admi...Ws811 g formation-ibm-websphere-service-registry-and-repository-v8-0-for-admi...
Ws811 g formation-ibm-websphere-service-registry-and-repository-v8-0-for-admi...CERTyou Formation
 
20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven developmentLeClubQualiteLogicielle
 
alphorm.com - Formation XenSources
alphorm.com - Formation XenSourcesalphorm.com - Formation XenSources
alphorm.com - Formation XenSourcesAlphorm
 
Joomla! Platform - Pourquoi l’API Joomla!
Joomla! Platform - Pourquoi l’API Joomla!Joomla! Platform - Pourquoi l’API Joomla!
Joomla! Platform - Pourquoi l’API Joomla!Bilel McSam
 
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...CERTyou Formation
 

Similar a Alphorm.com Formation Java Server Faces (20)

Play Framework
Play FrameworkPlay Framework
Play Framework
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
JEE_chapitre 1.pdf
JEE_chapitre 1.pdfJEE_chapitre 1.pdf
JEE_chapitre 1.pdf
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Alphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NETAlphorm.com - Formation programmer en Visual Basic .NET
Alphorm.com - Formation programmer en Visual Basic .NET
 
JEE_Chapter4_JSF_VF (1).pdf
JEE_Chapter4_JSF_VF (1).pdfJEE_Chapter4_JSF_VF (1).pdf
JEE_Chapter4_JSF_VF (1).pdf
 
Java Server Faces 2
Java Server Faces 2Java Server Faces 2
Java Server Faces 2
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
Ws811 g formation-ibm-websphere-service-registry-and-repository-v8-0-for-admi...
Ws811 g formation-ibm-websphere-service-registry-and-repository-v8-0-for-admi...Ws811 g formation-ibm-websphere-service-registry-and-repository-v8-0-for-admi...
Ws811 g formation-ibm-websphere-service-registry-and-repository-v8-0-for-admi...
 
20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development
 
#6 Outils De Developpement
#6 Outils De Developpement#6 Outils De Developpement
#6 Outils De Developpement
 
alphorm.com - Formation XenSources
alphorm.com - Formation XenSourcesalphorm.com - Formation XenSources
alphorm.com - Formation XenSources
 
J platform
J platformJ platform
J platform
 
Joomla! Platform - Pourquoi l’API Joomla!
Joomla! Platform - Pourquoi l’API Joomla!Joomla! Platform - Pourquoi l’API Joomla!
Joomla! Platform - Pourquoi l’API Joomla!
 
La plateforme JEE
La plateforme JEELa plateforme JEE
La plateforme JEE
 
Administration glassfish 3
Administration glassfish 3Administration glassfish 3
Administration glassfish 3
 
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
Wpl53 g formation-developper-des-applications-pour-ibm-websphere-portal-8-0-a...
 

Más de Alphorm

Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm
 
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm
 
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm
 
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm
 
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm
 
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm
 
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm
 
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm
 
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm
 
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm
 
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm
 

Más de Alphorm (20)

Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
 
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
 
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : SécuritéAlphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
 
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à ZAlphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
 
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'ArchitecturesAlphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
 
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion CommercialeAlphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation Sage : Gestion Commerciale
 
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objetAlphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
 
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord InteractifAlphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
 
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style IsométriqueAlphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
 
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à NiveauAlphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
 
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
 
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes MobilesAlphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
 
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POOAlphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation PHP 8 : Les bases de la POO
 
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
 
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
 
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
 
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
 
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBootAlphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
 
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et ServicesAlphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
 

Alphorm.com Formation Java Server Faces

  • 1. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Formation JSF (Java Server Faces) Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 2. Formation Java Server Faces alphorm.com™© Plan • Présentation du formateur • Qu’est-ce que JSF? • Le plan de la formation • Les références bibliographiques • Autres liens utiles
  • 3. Formation Java Server Faces alphorm.com™© Plan • Présentation du formateur • Qu’est-ce que JSF? • Le plan de la formation • Les références bibliographiques • Autres liens utiles
  • 4. Formation Java Server Faces alphorm.com™© Qu’est-ce que JSF • Un ensemble de bibliothèques Java • Utilisées dans une application JEE • Pour la couche de présentation • Permet de faire le lien entre HTML et la logique
  • 5. Formation Java Server Faces alphorm.com™© Le plan de la formation • Chapitre 1 : L’application Web • Chapitre 2 : La technologie JSF • Chapitre 3 : Les facelets • Chapitre 4 : Expression Language • Chapitre 5 : JSF dans les pages Web • Chapitre 6 : Converters, Listeners et Validators • Chapitre 7 : Les beans managés • Chapitre 8 : Ajax et JSF • Chapitre 9 : Configurer l’application JSF
  • 6. Formation Java Server Faces alphorm.com™© Les références bibliographiques • Java EE 7 The Big Picture, Oracle • Java EE Guide de développement Web en Java
  • 7. Formation Java Server Faces alphorm.com™© Il n’y a plus qu’à…
  • 8. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Architecture L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 9. Formation Java Server Faces alphorm.com™© Plan • Les parties de l’application • Les outils de développement • Un servlet • Un EJB • Une entité
  • 10. Formation Java Server Faces alphorm.com™© Les parties de l’application • Une application complète JEE possède les parties suivantes
  • 11. Formation Java Server Faces alphorm.com™© Les outils de développement • Netbeans 8.1 JEE • Le téléchargement est lié à Glassfish, implémentation de référence pour les serveurs JEE Tomcat, implémentation de référence pour la partie Web • Maven comme environnement de construction en lot Résoud les dépendances et télécharge les bibliothèques nécessaires
  • 12. Formation Java Server Faces alphorm.com™© Présentation du formateur • Fabien Brissonneau • Email : fabien.brissonneau@gmail.com • Consultant Concepteur et Formateur • Missions d’architecture, de conception , de réalisation logicielles • Fondateur de eiXa6 • Actuellement en mission sur un projet de gestion • Mes références : Mon profil LinkedIn : http://fr.linkedin.com/pub/fabien-brissonneau/65/902/92a/
  • 13. Formation Java Server Faces alphorm.com™© Un EJB • Tout simplement un POJO, qui s’occupe de traitement logiciel • Référence la partie base de données • Implémente la logique applicative
  • 14. Formation Java Server Faces alphorm.com™© Une entité • Une classe annotée • Déclare une clé • Peut être accompagnée des instructions de base de donnée
  • 15. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Les parties de l’application • Les outils de développement • Un servlet • Un EJB • Une entité
  • 16. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Packaging et déploiement L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 17. Formation Java Server Faces alphorm.com™© Plan • Fichiers war • Fichiers jar • Fichiers ear
  • 18. Formation Java Server Faces alphorm.com™© Fichiers war • Le déploiement d’une application Web est décrit par un fichier • Sorte de fichier ZIP • Structure prédéfinie La racine contient les fichiers textes, HTML, JSP, JSF Un répertoire WEB-INF qui contient les servlets et les classes Java
  • 19. Formation Java Server Faces alphorm.com™© Fichiers JAR • La partie modèle est stockée dans un fichier d’extension .jar • Structure prédéfinie similaire • Le répertoire META-INF contient des infos sur la persistence Le fichier persistence.xml
  • 20. Formation Java Server Faces alphorm.com™© Fichiers EAR • Le fichier en extension ear regroupe les deux précédents • Structure : /META-INF • /MANIFEST.MF /<fichier web>.war /<fichier ejb>.jar • Ce fichier décrit donc le déploiement sur un serveur JEE
  • 21. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Fichiers war • Fichiers jar • Fichiers ear
  • 22. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com L’API Servlet L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 23. Formation Java Server Faces alphorm.com™© Plan • Ce que fait un Servlet • Comment créer un Servlet • Exemple d’application • La classe HttpServlet • La classe ServletContext • La classe HttpSession • La classe RequestDispatcher
  • 24. Formation Java Server Faces alphorm.com™© Ce que fait un Servlet • Un servlet est exécuté dans le conteneur Web • Doit examiner l’entête de requête pour déterminer le type de contenu attendu par le client • Récupérer les informations à retourner • Positionner les informations d’entête de retour • Ecrire en retour les données attendues
  • 25. Formation Java Server Faces alphorm.com™© Comment créer un Servlet • Dériver la classe javax.servlet.http.HttpServlet • Implémenter les méthodes correspondant au protocole HTTP GET,POST,HEAD,PUT,TRACE,OPTIONS, et la méthode service • Utiliser les classes de requête et de réponse La classe javax.servlet.http.HttpServletRequest La classe javax.servlet.http.HttpServletResponse
  • 26. Formation Java Server Faces alphorm.com™© Exemple d’application • Une méthode doGet d’un Servlet pour récupérer des photos
  • 27. Formation Java Server Faces alphorm.com™© La classe HttpServlet • Dans le package javax.servlet.http • Classe mère des servlets, multiples instances, thread-safe • Suit un cycle de vie spécifique : Instanciée avant toute requête HTTP Méthode init(ServletConfig ) appelée : pour placer toute activité longue et nécessaire aux traitements des requêtes (ouverture de connexion…) Méthode doXXX, en fonction de la méthode HTTP Méthode destroy() appelée : nettoyage des ressources couteuses (fermeture de connexion…) La même instance ne sera plus réutilisée
  • 28. Formation Java Server Faces alphorm.com™© La classe ServletContext • Dans le package javax.servlet • Chaque application Web a une unique instance de cette classe • Permet à un servlet d’obtenir de l’information sur l’environnement Version de l’API Servlet supportée, chemin d’accès à l’application, … Propose une « map » d’attributs liés à l’application
  • 29. Formation Java Server Faces alphorm.com™© Qu’est-ce que JSF • Un ensemble de bibliothèques Java • Utilisées dans une application JEE • Pour la couche de présentation • Permet de faire le lien entre HTML et la logique
  • 30. Formation Java Server Faces alphorm.com™© La classe RequestDispatcher • Dans le package javax.servlet • Permet de gérer les « forward » et les « include » • Le « forward » permet de demander à la ressource d’écrire la réponse à la place du servlet courant • Le « include » permet de demander à la ressource de compléter la réponse que le servlet courant à commencer à écrire • Obtenu à partir du contexte
  • 31. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Ce que fait un Servlet • Comment créer un Servlet • Exemple d’application • La classe HttpServlet • La classe ServletContext • La classe HttpSession • La classe RequestDispatcher
  • 32. Formation Java Server Faces alphorm.com™© Le mapping des Servlets L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels Site : http://www.alphorm.com Blog : http://blog.alphorm.com
  • 33. Formation Java Server Faces alphorm.com™© Plan • Le déploiement des informations • Les chemins d’accès • L’annotation @WebServlet • Ordre des recherches
  • 34. Formation Java Server Faces alphorm.com™© Le déploiement des informations • A partir de l’application Web (ou du fichier .war) • Les ressources Web : à la racine / Fichiers index.html, login.jsp,… • Les classes Java dans /WEB-INF/classes Fichiers Voiture.class, … • Les bibliothèques dans /WEB-INF/lib Fichiers utilitaires.jar, … • Informations de déploiement /WEB-INF/Web.xml
  • 35. Formation Java Server Faces alphorm.com™© Les chemins d’accès • Une technique simple est d’affecter une URI à chaque Servlet, relativement à la racine de l’application • Une URL peut être Relative : /catalogue/album Relative avec caractère générique : <uri>/* Une extension de fichier : *.jsp • Les réglages peuvent se faire avec @WebServlet Package javax.servlet.annotation
  • 36. Formation Java Server Faces alphorm.com™© L’annotation @WebServlet • Paramètre asyncSupported (boolean) • Paramètre description (String) • Paramètre displayName (String) • Paramètres initParam (WebInitParam[]) • Paramètres largeIcon et smallIcon (String : nom de l’image) • Paramètre loadOnStartup (int : numéro d’ordre dans l’instanciation) • Paramètre name (String : nom logique, à utiliser dans RequestDispatcher) • Paramètre urlPatterns et value (String[] : mapping du servlet)
  • 37. Formation Java Server Faces alphorm.com™© Le plan de la formation • Chapitre 1 : L’application Web • Chapitre 2 : La technologie JSF • Chapitre 3 : Les facelets • Chapitre 4 : Expression Language • Chapitre 5 : JSF dans les pages Web • Chapitre 6 : Converters, Listeners et Validators • Chapitre 7 : Les beans managés • Chapitre 8 : Ajax et JSF • Chapitre 9 : Configurer l’application JSF
  • 38. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Le déploiement des informations • Les chemins d’accès • L’annotation @WebServlet • Ordre des recherches
  • 39. Formation Java Server Faces alphorm.com™© Les pages JSP L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels Site : http://www.alphorm.com Blog : http://blog.alphorm.com
  • 40. Formation Java Server Faces alphorm.com™© Plan • L’architecture JSP • Exemple de JSP • La syntaxe des JSP • Les directives JSP
  • 41. Formation Java Server Faces alphorm.com™© L’architecture JSP • Une page JSP est une page HTML dans laquelle apparaissent des balises introduisant du Java • Là où le Servlet était du Java retournant du HTML • La page JSP est traduite runtime en un Servlet par le conteneur • Le Servlet est ensuite compilé runtime • La pages JSP accède donc au même environnement que le Servlet
  • 42. Formation Java Server Faces alphorm.com™© Exemple de JSP • Une page d’extension .jsp par défaut, à la racine de l’application
  • 43. Formation Java Server Faces alphorm.com™© La syntaxe des JSP • Les scriplets sont les zones encadrées par <% et %> • Il y a deux types de scriplets <%= expression java %> : l’expression est évaluée, intégrée à la sortie <% expression java %> : une collection d’expressions, pas de sortie explicite • La sortie préconfigurée, référence de type javax.servlet.jdp.JspWriter Sous type de java.io.Writer • Le fichier horloge.jsp correspond à l’URL http://<serveur:port>/<application>/horloge.jsp • La correspondance peut être modifiée
  • 44. Formation Java Server Faces alphorm.com™© Les directives JSP • Les directives JSP paramètrent globalement la page • Forme : <%@ nomdedirective att1=valeur att2=valeur %> • Directive page : les propriétés générales de la page • Directive include : permet d’inclure le contenu d’un autre fichier, comme un entête • Directive taglib : déclarer une bibliothèque de balises • Les directives peuvent apparaître n’importe où dans la page • Une directive peut apparaître plusieurs fois
  • 45. Formation Java Server Faces alphorm.com™© Les références bibliographiques • Java EE 7 The Big Picture, Oracle • Java EE Guide de développement Web en Java
  • 46. Formation Java Server Faces alphorm.com™© Directive page pour les langages utilisés • language (java): Spécifier le langage utilisé (vraiment utile ?) • isELIgnored (false): Ne pas utiliser Expression Language • import : Importer des classes Java
  • 47. Formation Java Server Faces alphorm.com™© Directive page pour le runtime • autoFlush (true): vidage du buffer automatique ou non • buffer (dép. impl.): spécifie la taille minimum du tampon • isThreadSafe (true): spécifie si la page JSP peut gérer plusieurs threads en même temps
  • 48. Formation Java Server Faces alphorm.com™© Directive page pour les erreurs • isErrorPage (false) : déclare la page courante comme page d’erreur • errorPage : déclare la page d’erreur à utiliser
  • 49. Formation Java Server Faces alphorm.com™© Directives include et taglib • Include Avec file pour spécifier le fichier à inclure • Taglib Avec uri pour spécifier le nom du fichier Avec prefix pour spécifier le préfixe xml
  • 50. Formation Java Server Faces alphorm.com™© Il n’y a plus qu’à…
  • 51. Formation Java Server Faces alphorm.com™© Il n’y a plus qu’à…
  • 52. Formation Java Server Faces alphorm.com™© Il n’y a plus qu’à…
  • 53. Formation Java Server Faces alphorm.com™© Il n’y a plus qu’à…
  • 54. Formation Java Server Faces alphorm.com™© Usage des JavaBeans • Utiliser une action jsp:useBean Avec id : référence vers le bean Avec class : nom de la classe du bean Avec scope : portée du bean (page, request, session, application) • Puis récupérer une propriété avec jsp:getProperty (attributs name, property) • Positionner une propiété avec jsp:setProperty ( attributs name, property, value)
  • 55. Formation Java Server Faces alphorm.com™© Les actions JSP • Action jsp:forward, page=…. Réalise un forward vers une autre page • Action jsp:include page= Réalise un include, éventuellement paramétré avec jsp:param • Action jsp:plugin permet de solliciter une applet • Action jsp:text permet de générer du texte (pour EL) • Actions jsp:element, jsp:attribute et jsp:body permettent de générer du XML
  • 56. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Définition de JavaBeans • Usage des JavaBeans • Les actions JSP
  • 57. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Les balises JSP L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 58. Formation Java Server Faces alphorm.com™© Plan • Les balises JSP standards • La balise forEach • La balise if
  • 59. Formation Java Server Faces alphorm.com™© Les balises standards • JSP définit des balises • Standard : pour toute page JSP • Pour les données SQL • Pour le XML et la manipulation de texte • Des manipulations de chaînes de caractères • Nécessite la déclaration de la bibliothèque utilisée
  • 60. Formation Java Server Faces alphorm.com™© La balise forEach • Permet l’itération Sur une séquence de nombres, avec un incrément Sur un conteneur
  • 61. Formation Java Server Faces alphorm.com™© La balise if • Le corps de la balise que si l’attribut test est évalué à vrai
  • 62. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Architecture L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 63. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Architecture L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 64. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Architecture L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 65. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Architecture L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 66. Formation Java Server Faces alphorm.com™© Déclaration de la balise • Dans un fichier .tld • Fait le lien entre le nom de la balise et la classe Java • Peut déclarer des attributs (de balise)
  • 67. Formation Java Server Faces alphorm.com™© Utilisation de la balise • Déclarer l’usage de la bibliothèque de balise • Utiliser a balise personnalisée
  • 68. Formation Java Server Faces alphorm.com™© Balise vs JavaBean • Les deux cherchent à séparer le code Java de la présentation • La mise en œuvre des JavaBean semble plus simple • Les balises personnalisées permettent une syntaxe plus riche • Les balises personnalisées n’ont que la portée de page
  • 69. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Création d’une balise personnalisée • Déclaration de la balise • Utilisation de la balise • Balise vs JavaBean
  • 70. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Une application JSF La technologie JSF Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 71. Formation Java Server Faces alphorm.com™© Plan • Qu’est-ce qu’une application JSF ? • Une application JSF simple • Le modèle de l’interface utilisateur • Le modèle de rendu • Le modèle de conversion • Le modèle d’événement • Le modèle de validation • Le modèle de navigation
  • 72. Formation Java Server Faces alphorm.com™© Qu’est-ce qu’une application JSF ? • JSF est un framework de composants côté serveur pour construire des applications Web Java • JSF contient : une API pour gérer les événements, la validation, et la conversion des données, définir la navigation, supporter l’internationalisation ET des balises pour intégrer ces composants dans les pages Web et les connecter à des objets côté serveur • JSF permet d’alléger les tâches de construction de l’application : créer les pages web, placer les composants dans la page, lier les composants aux données, gérer les événements, sauver et restaurer les états de l’application, réutiliser les composants
  • 73. Formation Java Server Faces alphorm.com™© Une application JSF simple • Exemple avec 2 pages web avec Facelets et 1 bean managé • Application compilée lors du premier accès à index.xhtml • Un arbre de composants est placé dans FacesContext, puis rempli et lié à l’objet de type Hello • La vue est rendue au client • L’arbre est détruit
  • 74. Formation Java Server Faces alphorm.com™© Le modèle de l’interface utilisateur • Un composant est graphique ou non • Un composant graphique peut être simple ou composé • L’architecture JSF fournit : des javax.faces.component.UIComponent spécifiant l’état et le comportement graphique un modèle de rendu un modèle de conversion qui définit comment enregistrer les convertisseurs sur les composants un modèle d’événements pour gérer les événements sur les composants un modèle de validation pour enregistrer les validateurs sur les composants
  • 75. Formation Java Server Faces alphorm.com™© Plan • Les parties de l’application • Les outils de développement • Un servlet • Un EJB • Une entité
  • 76. Formation Java Server Faces alphorm.com™© Les composants graphiques • UIInput : une entrée, sous classe de UIOutput • UIMessage : un message d’erreur localisé (et UIMessages) • UIOutcomeTarget : un lien, ou bouton • UIPanel : gestion des composants • UISelect * : gestion de sélections • UIViewRoot : racine des composants dans la vue • Les composants implémentent des interfaces de comportement : ActionSource, EditableValueHolder, StateHolder, NamingContainers, …
  • 77. Formation Java Server Faces alphorm.com™© Le modèle de rendu • Une classe de rendu séparée des classes de composants : Adapter le rendu à un client ou un type de client Changer l’apparence des composants sur une page • Un « render kit » correspond à un type de client Un ensemble de classes Renderer pour chaque composant Le rendu est choisi avec la balise : commandButton vs commandLink
  • 78. Formation Java Server Faces alphorm.com™© Le modèle de conversion • Un composant peut être associé à un objet côté serveur • L’application voit les données de deux façons La vue modèle : les types de données La vue présentation : une façon de lire ou modifier les données • Les conversions sont automatiques • Pour changer les conversions standards, enregistrer une sous-classe de javax.faces.convert.Converter sur un UIOutput
  • 79. Formation Java Server Faces alphorm.com™© Le modèle d’événements • Conforme au modèle classique des JavaBeans • Les événements sont : Les événements applicatifs • Liés aux actions : émis par les boutons et les liens • Liés aux changements de valeur : émis par UIInput Les événements systèmes • Correspondent au cycle de vie de l’application Les événements de données • Une ligne de UIData qui change
  • 80. Formation Java Server Faces alphorm.com™© Le modèle de validation • La validation est exécutée avant la mise à jour des données • Des classes standards, dérivant de javax.faces.validator.Validator • Des balises pour la mise en place dans le html • Possibilité de déclarer un validateur qui s’applique pour tous les input • Possibilité de créer son propre validateur
  • 81. Formation Java Server Faces alphorm.com™© Les parties de l’application • Une application complète JEE possède les parties suivantes
  • 82. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Qu’est-ce qu’une application JSF ? • Une application JSF simple • Le modèle de l’interface utilisateur • Le modèle de rendu • Le modèle de conversion • Le modèle d’événement • Le modèle de validation • Le modèle de navigation
  • 83. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com La navigation La technologie JSF Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 84. Formation Java Server Faces alphorm.com™© Plan • La navigation implicite • La navigation définie dans le xml • La navigation contrôlée par les beans
  • 85. Formation Java Server Faces alphorm.com™© La navigation implicite • La page xhtml contient le nom de la page cible • L’attribut action référence par défaut un nom • Le serveur ajoute « xhtml » comme extension pour trouver la page • Dans cet exemple, reponse.xhtml est une page accessible
  • 86. Formation Java Server Faces alphorm.com™© La navigation dans un fichier xml • La configuration de la navigation hors des pages xhtml • Un nom « logique » est utilisé dans la page xhtml • Ce nom logique associé à l’id de la vue Correspond à une règle
  • 87. Formation Java Server Faces alphorm.com™© La navigation contrôlée par les beans • La commande est envoyée à un bean • Appel d’une méthode du bean • Le retour du bean correspond au nom logique utilisé ensuite
  • 88. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • La navigation implicite • La navigation définie dans le xml • La navigation contrôlée par les beans
  • 89. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Le cycle de vie La technologie JSF Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 90. Formation Java Server Faces alphorm.com™© Plan • Requête initiale ou postback • La classe FacesContext • L’attribut immediate
  • 91. Formation Java Server Faces alphorm.com™© Requête initiale et postback • Les deux étapes essentielles sont Execute • Subdivisée en plusieurs étapes : Restore View, Apply Request,… Render • Rendu de la réponse vers le client
  • 92. Formation Java Server Faces alphorm.com™© La classe FacesContext • Nom complet javax.faces.context.FacesContext • Contient la vue à rendre au client • FacesContext.renderResponse passe directement à l’étape de rendue Cas de la requête initiale • FacesContext.responseComplete évite l’étape de rendu Cas d’un passage à une application sans composant
  • 93. Formation Java Server Faces alphorm.com™© L’attribut immediate • Cet attribut va forcer la validation, les événements et les conversions à être évalués dans la phase Apply Request • Il faut la cohérence entre la valeur de cet attribut sur un champ d’entrée et sur les actions correspondantes • Par exemple, si un bouton a cet attribut à vrai, il est traité avant que les données des champs ne soient mises à jour
  • 94. Formation Java Server Faces alphorm.com™© Les outils de développement • Netbeans 8.1 JEE • Le téléchargement est lié à Glassfish, implémentation de référence pour les serveurs JEE Tomcat, implémentation de référence pour la partie Web • Maven comme environnement de construction en lot Résoud les dépendances et télécharge les bibliothèques nécessaires
  • 95. Formation Java Server Faces alphorm.com™© Les outils de développement • Netbeans 8.1 JEE • Le téléchargement est lié à Glassfish, implémentation de référence pour les serveurs JEE Tomcat, implémentation de référence pour la partie Web • Maven comme environnement de construction en lot Résoud les dépendances et télécharge les bibliothèques nécessaires
  • 96. Formation Java Server Faces alphorm.com™© Les outils de développement • Netbeans 8.1 JEE • Le téléchargement est lié à Glassfish, implémentation de référence pour les serveurs JEE Tomcat, implémentation de référence pour la partie Web • Maven comme environnement de construction en lot Résoud les dépendances et télécharge les bibliothèques nécessaires
  • 97. Formation Java Server Faces alphorm.com™© Les outils de développement • Netbeans 8.1 JEE • Le téléchargement est lié à Glassfish, implémentation de référence pour les serveurs JEE Tomcat, implémentation de référence pour la partie Web • Maven comme environnement de construction en lot Résoud les dépendances et télécharge les bibliothèques nécessaires
  • 98. Formation Java Server Faces alphorm.com™© Les bibliothèques supportées • Balises JSF Facelets, préfixe ui:, exemple ui:insert • Balises JSF HTML, préfixe h:, exemple h:head • Balises JSF Core, préfixe f:, exemple f:actionListener • Balises elements, préfixe jsf:, exemple jsf:id • Balises attributs, préfixe p:, exemple p:type • Balises composite, préfixe cc:, exemple cc:interface • Balises JSTL Core, préfixe c:, exemple c:forEach • Balises fonctions, préfixe fn:, exemple fn:toUpperCase
  • 99. Formation Java Server Faces alphorm.com™© Le cycle de vie de l’application • première requête, un UIViewRoot est créé et placé dans le FacesContext • UIViewRoot est remplie avec les composants • La vue est rendue au client • L’état est conservé • Le client interagit avec la vue, conduisant à la création d’une nouvelle ou la restauration de l’ancienne
  • 100. Formation Java Server Faces alphorm.com™© Exemple d’application • Créer les beans managés • Créer les pages avec les balises de composants • Définir la navigation • Configurer l’application • Déclarer les beans managés
  • 101. Formation Java Server Faces alphorm.com™© Les beans managés • Chaque page est connectée à un bean • Plusieurs pages peuvent se connecter sur le même bean • Annoté @Named, pour être utilisé via EL • Annoté d’une portée particulière, pour être utilisable dans la requête, la session, l’application…
  • 102. Formation Java Server Faces alphorm.com™© Un servlet • Une classe héritant de HttpServlet • Traite les réponses HTTP • Contient des références aux EJB
  • 103. Formation Java Server Faces alphorm.com™© Configurer l’application • Configurer le servlet dans web.xml • Page de démarrage de l’application • Configuration de faces-config.xml
  • 104. Formation Java Server Faces alphorm.com™© Divers • Une page template est un modèle récurrent dans l’application Défini avec ui:insert et utilisé avec ui:define • Il est possible de définir des composants réutilisables Défini avec composite:interface, composite:implementation,… • Les contrats sont des paramétrages de l’application Plusieurs parties de l’application ont des contrats différents • Les éléments et attributs « pass-through » Envoyés directement au client en tant que HTML5
  • 105. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Les facelets • Le cycle de vie de l’application • Exemple
  • 106. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Construire une application Facelets Les facelets Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 107. Formation Java Server Faces alphorm.com™© Plan • Préparer un template • Créer les parties • Créer des composites
  • 108. Formation Java Server Faces alphorm.com™© Préparer un template • Grâce à la balise ui:insert • Directement avec NetBeans
  • 109. Formation Java Server Faces alphorm.com™© Créer les parties • Les clients du template redéfinissent les zones • Grâce aux balises ui:composition pour introduire le template utilisé ui:define pour placer du contenu
  • 110. Formation Java Server Faces alphorm.com™© Créer des composites • Définir les attributs du composant • Puis composer le contenu
  • 111. Formation Java Server Faces alphorm.com™© Utiliser ce composite • Référencer le fichier sauver dans un répertoire • Puis utiliser ce composant comme les autres
  • 112. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Préparer un template • Créer les parties • Créer des composites
  • 113. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Les balises HTML5 Les facelets Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 114. Formation Java Server Faces alphorm.com™© Plan • Les éléments pass-through • Les attributs pass-through • Exemples
  • 115. Formation Java Server Faces alphorm.com™© Les éléments pass-through • Utiliser les balises HTML5 • Les gérer comme des éléments UIComponent • Mettre un attribut spécifique permettant le traitement
  • 116. Formation Java Server Faces alphorm.com™© Les attributs pass-through • Les attributs pass-through sont envoyés directement au navigateur • N’existent pas sur les éléments JSF
  • 117. Formation Java Server Faces alphorm.com™© Exemples Balise Identifiant Facelets a jsf:action h:commandlink body h:body input type=button h:commandButton input type=checkbox h:selectBooleanCheckBox input type=date h:inputText input type=password h:inputSecret link h:outputStyleSheet
  • 118. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Les éléments pass-through • Les attributs pass-through • Exemples
  • 119. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com La syntaxe de EL Expression Language Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 120. Formation Java Server Faces alphorm.com™© Plan • Vue générale • Evaluation immédiate • Evaluation différée
  • 121. Formation Java Server Faces alphorm.com™© Vue générale • Permet la communication entre la couche Web et les beans managés • La couche Web = la couche de présentation • Les beans managés = la couche de logique de l’application • EL est utilisé par : JSP JSF CDI
  • 122. Formation Java Server Faces alphorm.com™© Un EJB • Tout simplement un POJO, qui s’occupe de traitement logiciel • Référence la partie base de données • Implémente la logique applicative
  • 123. Formation Java Server Faces alphorm.com™© Evaluation immédiate • L’expression est évaluée dès que la page est rendue • Utilise la syntaxe ${…} • Pas forcément très pratique, étant donné le cycle de vie des pages • Utilisé pour des données statiques ou fixes durant l’application
  • 124. Formation Java Server Faces alphorm.com™© Evaluation différée • L’expression utilise la syntaxe #{…} • Le moment de l’évaluation va dépendre de l’endroit • Requête initiale : lecture des nom et mot de passe • Postback : positionnement des valeurs
  • 125. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Vue générale • Evaluation immédiate • Evaluation différée
  • 126. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Les expressions de valeurs Expression Language Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 127. Formation Java Server Faces alphorm.com™© Plan • Expression générale • Référencement d’objets • Référencement de propriétés • Les littéraux • Les paramètres de méthodes • Utilisation des expressions de valeurs
  • 128. Formation Java Server Faces alphorm.com™© Expression générale • Les expressions de valeurs peuvent être r-value ou l-value Utilisées en lecture ou en écriture • Les expressions immédiates ne sont que r-value • Avec JSF : Requête initiale : lit l’expression Postback : éventuellement positionnement de la valeur
  • 129. Formation Java Server Faces alphorm.com™© Référencement d’objets • L’expression démarre sur un objet de haut-niveau : Des paramètres, variables EL, beans managés, objets implicites, classes • Expression à base de ${objet} • Il est possible de changer la façon dont le serveur retrouve l’objet • Dans les cas des constantes d’énuméré Utiliser directement le nom de la constante, préfixé du nom de l’enum
  • 130. Formation Java Server Faces alphorm.com™© Référencement de propriétés • Utiliser la notation de sélection « . » ou « [ ] » • Par exemple : • Il est possible d’accéder aux static sur des classes : Boolean.FALSE • La syntaxe « [ ] » permet d’accéder au ième élément d’une collection • Pour les maps, les deux syntaxes sont possibles
  • 131. Formation Java Server Faces alphorm.com™© Les littéraux • Quelques littéraux sont prédéfinis Booléens : true, false, Entiers : comme Java Flottants : comme Java Texte : entre double ou simple quotes Null : null
  • 132. Formation Java Server Faces alphorm.com™© Les paramètres de méthodes • Les syntaxes « . » ou « [ ] » peuvent être utilisées • Ajouter des parenthèses
  • 133. Formation Java Server Faces alphorm.com™© Utilisation des expressions de valeurs • Avec le $, dans les textes statiques et tous les attributs qui l’acceptent • L’évaluation se fera au rendu de la page • Si plusieurs expressions se suivent, elles sont évaluées de gauche à droite • Une expression peut contenir l’opérateur de concaténation
  • 134. Formation Java Server Faces alphorm.com™© Une entité • Une classe annotée • Déclare une clé • Peut être accompagnée des instructions de base de donnée
  • 135. Formation Java Server Faces alphorm.com™© Une entité • Une classe annotée • Déclare une clé • Peut être accompagnée des instructions de base de donnée
  • 136. Formation Java Server Faces alphorm.com™© Une entité • Une classe annotée • Déclare une clé • Peut être accompagnée des instructions de base de donnée
  • 137. Formation Java Server Faces alphorm.com™© Une entité • Une classe annotée • Déclare une clé • Peut être accompagnée des instructions de base de donnée
  • 138. Formation Java Server Faces alphorm.com™© Les expressions lambda • Equivalent à une expression de valeur avec paramètres • Syntaxe identique à Java 8 • Peut être utilisée en paramètre de méthode
  • 139. Formation Java Server Faces alphorm.com™© Opérations sur les collections • Création de set avec { }, de liste avec [ ], de map avec {a:b} • Les stream java et certaines de leurs opérations sont applicables en EL filter, map, min, reduce, …
  • 140. Formation Java Server Faces alphorm.com™© Exemples d’opérateurs • Il est possible d’appliquer des opérateurs Arithmétiques Logiques Relationels Conditionel …
  • 141. Formation Java Server Faces alphorm.com™© Mots réservés • Certains mots réservés ne peuvent pas être utilisés en EL : And, or, not, eq, ne …
  • 142. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Syntaxe générale • Lambda expressions • Opérations sur des collections • Exemples d’opérateurs • Mots réservés
  • 143. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Ajouter des composants JSF dans les pages Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 144. Formation Java Server Faces alphorm.com™© Plan • Vue générale • Les composants de la bibliothèque HTML • Les attributs habituels • Les formulaires
  • 145. Formation Java Server Faces alphorm.com™© Vue générale • Une page JSF typique contient Les espaces de nommage déclarant les bibliothèques utilisées Les définitions de entête et corps de page Un formulaire • Pour construire la page JSF, il faut au moins la bibliothèque HTML et la bibliothèque core. • Un préfixe sera attribué à chacune de ces bibliothèques, en général « h: » et « f: »
  • 146. Formation Java Server Faces alphorm.com™© Les composants de la bibliothèque HTML • Représentation des éléments HTML • A l’intérieur d’un formulaire • Gère les entrées utilisateur, pour la saisie ou la restitution
  • 147. Formation Java Server Faces alphorm.com™© Les composants de la bibliothèque HTML Balise h:commandButton Soumettre un formulaire h:commandLink Lien h:form Définir un formulaire h:graphicImage Afficher une image h:inputFile Pour charger un fichier h:inputText Entrer un texte h:inputSecret Entrer un mot de passe h:inputHidden Cacher une variable dans la page h:inputTextArea Entrer un texte multiligne
  • 148. Formation Java Server Faces alphorm.com™© Les composants de la bibliothèque HTML Balise h:outputLabel Afficher un texte h:outputText Afficher un texte h:message Afficher un message h:panelGrid Afficher une table h:panelGroup Grouper des composants h:selectOneMenu Permettre la sélection d’un élément h:selectBooleanCheckbox Changer la valeur d’une checkbox h:dataTable Afficher une table de données h:column Une colonne dans la table
  • 149. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Les parties de l’application • Les outils de développement • Un servlet • Un EJB • Une entité
  • 150. Formation Java Server Faces alphorm.com™© Les formulaires • Le formulaire contient les composants qui présentent les données ou qui servent à entrer les données • Utiliser la balise <h:form> • Plusieurs formulaires sont possibles dans une page, mais seules les données liées à ce formulaire seront envoyées lors du postback de soumission • Le formulaire ne propose aucune disposition des éléments dans la page
  • 151. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Vue générale • Les composants de la bibliothèque HTML • Les attributs habituels • Les formulaires
  • 152. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Ajouter un composant texte JSF dans les pages Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 153. Formation Java Server Faces alphorm.com™© Plan • Les différents types de textes • Les textes en entrée • Les textes en sortie • Les composants inputText et inputSecret • Les composants outputLabel et outputLink • Utiliser outputFormat
  • 154. Formation Java Server Faces alphorm.com™© Les différents types de textes • Par composants textes non entendons des composants qui permettent de voir ou d’éditer du texte • Les labels permettent juste d’afficher du texte • Les champs permettent d’éditer du texte Uni ou multilignes • Les champs de mots de passe
  • 155. Formation Java Server Faces alphorm.com™© Les textes en entrée • Différentes balises sont possibles : h:inputHidden cache une variable dans la page h:inputSecret édite une ligne de texte, remplacé par des astérisques h:inputText édite une ligne de texte h:inputTextArea édite plusieurs lignes de texte •
  • 156. Formation Java Server Faces alphorm.com™© Les attributs des champs en entrée converter identifie un convertisseur converterMessage spécifie un message d’erreur lié au convertisseur dir indique la direction d’écriture ltr ou rtl label identifie le composant dans les messages d’erreur lang spécifie le code langage required remplissage obligatoire ou non requiredMessage message lié à l’erreur de ne pas avoir rempli le champ validator spécifie le bean valideur de ce champ texte (EL) validatorMessage spécifie le message lié valueChangeListener spécifie un bean traitant le contenu du champ
  • 157. Formation Java Server Faces alphorm.com™© Les textes en sortie • Différentes balises sont possibles : h:outputFormat affiche un message formaté h:outputLabel affiche un label lecture seule h:outputLink affiche un lien vers une autre page, sans action h:outputText affiche un texte d’une ligne
  • 158. Formation Java Server Faces alphorm.com™© Les composants inputText et inputSecret • Pour saisir un texte • Pour saisir un mot de passe
  • 159. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Packaging et déploiement L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 160. Formation Java Server Faces alphorm.com™© Utiliser outputFormat • Formater un texte • Utilise le format de java.text.MessageFormat
  • 161. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Les différents types de textes • Les textes en entrée • Les textes en sortie • Les composants inputText et inputSecret • Les composants outputLabel et outputLink • Utiliser outputFormat
  • 162. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Ajouter un composant commande JSF dans les pages Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 163. Formation Java Server Faces alphorm.com™© Plan • Rôles des composants de commande • Rendre un bouton • Rendre un lien
  • 164. Formation Java Server Faces alphorm.com™© Rôles des composants de commande • Réaliser des actions, soumettre un formulaire ou naviguer • h:commandButton est rendu comme un bouton • h:commandLink est rendu comme un lien • Ces composants possèdent 2 attributs remarquables : action chaîne de caractère ou expression EL pour déterminer la destination actionListener pointe sur une méthode déclenchée lors de l’action
  • 165. Formation Java Server Faces alphorm.com™© Rendre un bouton • Utiliser h:commandButton • Rendu sous la forme de <input type= submit • Pour soumettre un formulaire • Déclenche une action, plusieurs façons de réaliser la navigation
  • 166. Formation Java Server Faces alphorm.com™© Rendre un lien • Utiliser h:commandLink • Rendu sous la forme d’un <a> • Il est possible de contenir un <h:outputText> • Le rendu de ce composant génère du javascript
  • 167. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Rôles des composants de commande • Rendre un bouton • Rendre un lien
  • 168. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Ajouter un composant de sélection JSF dans les pages Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 169. Formation Java Server Faces alphorm.com™© Plan • Les composants de sélection • Les composants à sélection unique • Les composants à sélection multiple • Afficher le résultat de la sélection
  • 170. Formation Java Server Faces alphorm.com™© Les composants de sélection • Pour sélectionner dans une liste, dans un ensemble de choix • Sélection unique ou multiple • La liste peut être statique ou dynamique • Rendu par checkbox, radiobutton, drop-down menu ou listbox
  • 171. Formation Java Server Faces alphorm.com™© Les composants à sélection unique • h:selectBooleanCheckbox rend une checkbox, correspond à un booléen • h:selectOneRadio rend un ensemble de radiobutton • h:selectOneMenu rend une liste scrollable • h:selectOneListBox rend une liste non scrollable
  • 172. Formation Java Server Faces alphorm.com™© Plan • Fichiers war • Fichiers jar • Fichiers ear
  • 173. Formation Java Server Faces alphorm.com™© Afficher le résultat de la sélection • Passer par le binding pour lier les composants aux beans et inversement • Récupérer la valeur sélectionnée par l’attribut value
  • 174. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Les composants de sélection • Les composants à sélection unique • Les composants à sélection multiple • Afficher le résultat de la sélection
  • 175. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Ajouter des composants liés aux données JSF dans les pages Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 176. Formation Java Server Faces alphorm.com™© Plan • Objectifs de ces composants • Sources de données • Attributs optionnels
  • 177. Formation Java Server Faces alphorm.com™© Objectifs de ces composants • Représenter une collection d’objets • Sous la forme d’une table HTML • Utiliser le composant h:dataTable • Doit être utilisé avec h:column, pour spécifier les caractéristiques de chaque colonne affichée
  • 178. Formation Java Server Faces alphorm.com™© Sources de données • La source de données peut être Une collection de beans Un bean simplement Un objet javax.faces.model.DataModel Un objet java.sql.ResultSet Un objet javax.servlet…. Sql.Result Un objet javax.sql.RowSet
  • 179. Formation Java Server Faces alphorm.com™© Attributs optionnels • Dans h:dataTable , rows et first spécifient le nombre et la première ligne • Les styles CSS : captionClass titre de la table columnClasses les colonnes footerClass le bas de page headerClass le haut de page rowClasses les lignes styleClass le style de la table
  • 180. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Objectifs de ces composants • Sources de données • Attributs optionnels
  • 181. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Ajouter des composants divers JSF dans les pages Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 182. Formation Java Server Faces alphorm.com™© Plan • Afficher une image • Afficher un message • Mettre en place un marque-page
  • 183. Formation Java Server Faces alphorm.com™© Afficher une image • Le composant est h:graphicImage • Référence directe vers une image • Ou bien utiliser les ressources web
  • 184. Formation Java Server Faces alphorm.com™© Fichiers war • Le déploiement d’une application Web est décrit par un fichier • Sorte de fichier ZIP • Structure prédéfinie La racine contient les fichiers textes, HTML, JSP, JSF Un répertoire WEB-INF qui contient les servlets et les classes Java
  • 185. Formation Java Server Faces alphorm.com™© Mettre en place un marque-page • Les composants h:link ou h:button • Permettent un lien vers une page • Utilisent le mapping faces-config
  • 186. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Afficher une image • Afficher un message • Mettre en place un marque-page
  • 187. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Grouper les composants JSF dans les pages Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 188. Formation Java Server Faces alphorm.com™© Plan • Grouper en table • Grouper des composants
  • 189. Formation Java Server Faces alphorm.com™© Grouper en table • Utiliser h:panelGrid, rendu comme un TABLE • Spécifier le nombre de colonnes, titre, etc Des styles css pour les différentes parties de la table Peut contenir entête et bas de page
  • 190. Formation Java Server Faces alphorm.com™© Grouper des composants • Utiliser h:panelGroup pour grouper des composants • Ils apparaissent comme un seul composant • Rendu sous la forme de div ou de span
  • 191. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Grouper en table • Grouper des composants
  • 192. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Les convertisseurs standards Converters etc Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 193. Formation Java Server Faces alphorm.com™© Plan • Rôles et usage des convertisseurs • DateTimeConverter • NumberConverter
  • 194. Formation Java Server Faces alphorm.com™© Rôles et usages des convertisseurs • Transformer une chaîne de caractères en un objet • Et vis versa • Standards : BigDecimal, BigInteger, Boolean, Byte, DateTime, Double …
  • 195. Formation Java Server Faces alphorm.com™© DateTimeConverter • Cible le type java.util.Date • Nécessite la définition d’un style (format) • Propose les attributs binding, dateStyle, for, locale, pattern, timeStyle, timeZone, type
  • 196. Formation Java Server Faces alphorm.com™© NumberConverter • Utiliser le composant h:convertNumber • Avec les attributs binding currencyCode for groupingUsed integerOnly locale maxFractionDigits, maxIntegerDigits, min- pattern type
  • 197. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Rôles et usage des convertisseurs • DateTimeConverter • NumberConverter
  • 198. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Les listeners Converters etc Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 199. Formation Java Server Faces alphorm.com™© Plan • Rôle et intérêt des listeners • Gérer les changements de valeurs • Gérer les actions
  • 200. Formation Java Server Faces alphorm.com™© Rôle et intérêt des listeners • Peut être une classe ou une méthode • Utiliser les attributs valueChangeListener ou actionListener pour une méthode • Utiliser les balises f: correspondantes
  • 201. Formation Java Server Faces alphorm.com™© Gérer les changements de valeurs • Utilisé avec les attributs : type pour donne le nom de la classe du listener ValueChangeListener binding pour référencer un objet qui implémente
  • 202. Formation Java Server Faces alphorm.com™© Fichiers JAR • La partie modèle est stockée dans un fichier d’extension .jar • Structure prédéfinie similaire • Le répertoire META-INF contient des infos sur la persistence Le fichier persistence.xml
  • 203. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Rôle et intérêt des listeners • Gérer les changements de valeurs • Gérer les actions
  • 204. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Les validateurs Converters etc Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 205. Formation Java Server Faces alphorm.com™© Plan • Rôle et objectifs des validateurs • Valider une valeur • Utiliser les balises de validation
  • 206. Formation Java Server Faces alphorm.com™© Rôle et objectifs des validateurs • Pour valider les saisies utilisateur • BeanValidator bean validateur pour le composant • DoubleRangeValidator limites de valeurs pour les flottants • LengthValidator limites de valeurs pour les chaînes • LongRangeValidator limites de valeurs pour les entiers • RegexValidator correspondance sur une expression régulière • RequiredValidator vérifie la présence d’une valeur
  • 207. Formation Java Server Faces alphorm.com™© Valider une valeur • Plusieurs possibilités Utiliser les attributs dans le tag Utiliser l’attribut validator pour cibler une méthode de validation Encapsuler une balise de validation et positionner validatorId • Ne peut être utiliser que sur les composants qui permettent l’édition de valeurs
  • 208. Formation Java Server Faces alphorm.com™© Utiliser les balises de validation • Avec des attributs • Avec des balises imbriquées
  • 209. Formation Java Server Faces alphorm.com™© Expression régulière • Une expression régulière peut permettre de vérifier Mots de passe, email, téléphones, …
  • 210. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Rôle et objectifs des validateurs • Valider une valeur • Utiliser les balises de validation
  • 211. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Généralités Les beans managés Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 212. Formation Java Server Faces alphorm.com™© Plan • Les liaisons entre composant et bean • Exemple de liaisons
  • 213. Formation Java Server Faces alphorm.com™© Les liaisons entre composant et bean • Un composant peut être lié par sa valeur ou par son instance • Par la valeur suppose d’affecter l’attribut value La valeur est dans le composant • Par l’instance, il faut utiliser binding La valeur est dans le bean
  • 214. Formation Java Server Faces alphorm.com™© Fichiers EAR • Le fichier en extension ear regroupe les deux précédents • Structure : /META-INF • /MANIFEST.MF /<fichier web>.war /<fichier ejb>.jar • Ce fichier décrit donc le déploiement sur un serveur JEE
  • 215. Formation Java Server Faces alphorm.com™© La liaison de « binding » • Les attributs du composant peuvent être modifiés par le bean Accès via la programmation applicative Le bean instancie le composant • Utilisée lorsque Java a besoin de modifier les attributs qui commandent le rendu des composants
  • 216. Formation Java Server Faces alphorm.com™© Exemples de laisons • Les liaisons par valeur peuvent être plus complexes qu’un accès à une propriété de bean Expression booléenne Une propriété venant d’un paramètre Une propriété de bean Une valeur dans un tableau Une valeur dans une collection Une propriété d’un objet dans une collection
  • 217. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Les liaisons entre composant et bean • Exemple de liaisons
  • 218. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Lier les valeurs Les beans managés Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 219. Formation Java Server Faces alphorm.com™© Plan • Mise en œuvre • Liaison vers les objets implicites
  • 220. Formation Java Server Faces alphorm.com™© Mise en oeuvre • Postionner l’attribut value • Le bean managé peut être paramétré aussi dans un fichier xml
  • 221. Formation Java Server Faces alphorm.com™© Liaison vers un objet implicite • La valeur peut pointer vers des objets implicites • Les objets implicites sont : facesContext, application, initParam, session, view, component, cc, request, applicationScope, sessionScope, viewScope, requestScope, paramValues, headerValues, cookie, resource…
  • 222. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Fichiers war • Fichiers jar • Fichiers ear
  • 223. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Fichiers war • Fichiers jar • Fichiers ear
  • 224. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Fichiers war • Fichiers jar • Fichiers ear
  • 225. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Fichiers war • Fichiers jar • Fichiers ear
  • 226. Formation Java Server Faces alphorm.com™© La liaison des convertisseurs • Avec l’attribut binding, lier la propriété du bean au convertisseur etc • Le bean possède alors l’accès au convertisseur etc Les attributs peuvent être modifiés • Il faut que le convertisseur soit imbriqué Avec l’attribut binding
  • 227. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Intérêt • La laison des convertisseurs, listeners et validateurs
  • 228. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Généralités Ajax et JSF Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 229. Formation Java Server Faces alphorm.com™© Plan • Vue d’ensemble • Ajax dans JSF • Ajax dans les facelets
  • 230. Formation Java Server Faces alphorm.com™© Vue d’ensemble • Les interactions peuvent être asynchrones • Le client peut récupérer des informations sans interférer avec le reste de la page • La réponse du serveur est fournie sous la forme de XML Autre possibilité en JSON • Avantages attendus Validation des formulaires en temps réel Fonctionnalités nouvelles Mise à jour partielle
  • 231. Formation Java Server Faces alphorm.com™© Ajax dans JSF • Pour utiliser Ajax dans JSF Ajouter le javascript dans l’application Utiliser la bibliothèque built-in • La bibliothèque built-in peut être utilisée dans le code des beans • Les fonctionnalités peuvent être étendues • La balise est f:ajax
  • 232. Formation Java Server Faces alphorm.com™© Ajax dans les facelets • Utiliser f:ajax dans un composant standard • Avec des attributs render indique les composants à rendre execute indique les composants à exécuter onerror, onevent donnent les noms des fonctions js qui gèrent ces cas … • Utiliser le javascript jsf.ajax.request()
  • 233. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Vue d’ensemble • Ajax dans JSF • Ajax dans les facelets
  • 234. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Envoyer une requête Ajax Ajax et JSF Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 235. Formation Java Server Faces alphorm.com™© Plan • Utiliser l’attribut event • Utiliser l’attribut execute • Utiliser l’attribut immediate • Utiliser l’attribut listener
  • 236. Formation Java Server Faces alphorm.com™© Utiliser l’attribut event • Les valeurs possibles sont click, keyup, mouseover, focus, blur • Par défaut, correspondance avec l’événement associé au composant
  • 237. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com L’API Servlet L’application Web Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 238. Formation Java Server Faces alphorm.com™© Utiliser l’attribut immediate • Par défaut, vaut false • Permet d’anticiper le traitement sur ce composant
  • 239. Formation Java Server Faces alphorm.com™© Utiliser l’attribut listener • Décrit une méthode à déclencher • Correspond à l’événement prévu par event • Peut être accompagné de render pour spécifier le composant à remettre à jour
  • 240. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Utiliser l’attribut event • Utiliser l’attribut execute • Utiliser l’attribut immediate • Utiliser l’attribut listener
  • 241. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Gérer les erreurs Ajax et JSF Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 242. Formation Java Server Faces alphorm.com™© Plan • Suivre les événements • Gérer les erreurs
  • 243. Formation Java Server Faces alphorm.com™© Suivre les événements • L’attribut à utiliser est onevent • La valeur est le nom d’une méthode javascript • La méthode sera appelée à chaque étape ajax À savoir begin, complete, success • La fonction javascript sera appelée avec une donnée Propriétés responseXML-Text-Code, source, status, type
  • 244. Formation Java Server Faces alphorm.com™© Gérer les erreurs • Utilise l’attribut onerror • La valeur est une fonction javascript • Cette fonction reçoit en paramètre une donnée Propriétés description, errorName, errorMessage Type=error, Status=emptyResponse, httpError, malformedXML, serverError
  • 245. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Suivre les événements • Gérer les erreurs
  • 246. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Recevoir une réponse Ajax et JSF Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 247. Formation Java Server Faces alphorm.com™© Plan • Recevoir la réponse • Grouper des composants • Javascript dans Jsf
  • 248. Formation Java Server Faces alphorm.com™© Recevoir la réponse • Utiliser l’attribut render • Les valeurs peuvent être @this, @all, @none, @form • En ciblant le composant, celui-ci fait apparaître la réponse
  • 249. Formation Java Server Faces alphorm.com™© Plan • Ce que fait un Servlet • Comment créer un Servlet • Exemple d’application • La classe HttpServlet • La classe ServletContext • La classe HttpSession • La classe RequestDispatcher
  • 250. Formation Java Server Faces alphorm.com™© Javascript dans Jsf • Le fichier jsf.js est automatiquement fournit au client • Utiliser h:outputScript pour envoyer un autre fichier .js • On peut utiliser le contenu de jsf.js explicitement Mettre en œuvre la fonction request(…)
  • 251. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Recevoir la réponse • Grouper des composants • Javascript dans Jsf
  • 252. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Annotations sur les beans managés Configurer l’application Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 253. Formation Java Server Faces alphorm.com™© Plan • Les annotations de portée • La création en avance
  • 254. Formation Java Server Faces alphorm.com™© Les annotations de portée • Application Accessible à travers toutes les sessions • Session Accessible à travers toutes les requêtes HTTP (une « connexion ») • Flow Accessible à travers un flux donné • Request Accessible pour une requête • Dependent Indique que le bean dépend de la visibilité d’un autre bean
  • 255. Formation Java Server Faces alphorm.com™© La création en avance • Les beans sont normalement créés à la demande • Provoquer la création en avance d’un bean va faire que le bean existe avant même d’en avoir besoin • Utiliser @ManagedBean(eager=true) accompagnant @ApplicationScope
  • 256. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Les annotations de portée • La création en avance
  • 257. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Configurer les beans avec XML Configurer l’application Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 258. Formation Java Server Faces alphorm.com™© Plan • Le fichier de configuration • Intérêt de paramétrer par le fichier xml
  • 259. Formation Java Server Faces alphorm.com™© Le fichier de configuration • Dans faces-config.xml • La balise <managed-bean> • Décrire La classe Le nom La portée Des valeurs initiales pour les propriétés
  • 260. Formation Java Server Faces alphorm.com™© Intérêts • Paramétrage indépendant du code • Peut être modifié après déploiement • Ne nécessite pas de recompilation
  • 261. Formation Java Server Faces alphorm.com™© Ce que fait un Servlet • Un servlet est exécuté dans le conteneur Web • Doit examiner l’entête de requête pour déterminer le type de contenu attendu par le client • Récupérer les informations à retourner • Positionner les informations d’entête de retour • Ecrire en retour les données attendues
  • 262. Formation Java Server Faces alphorm.com™© Ce que fait un Servlet • Un servlet est exécuté dans le conteneur Web • Doit examiner l’entête de requête pour déterminer le type de contenu attendu par le client • Récupérer les informations à retourner • Positionner les informations d’entête de retour • Ecrire en retour les données attendues
  • 263. Formation Java Server Faces alphorm.com™© Ce que fait un Servlet • Un servlet est exécuté dans le conteneur Web • Doit examiner l’entête de requête pour déterminer le type de contenu attendu par le client • Récupérer les informations à retourner • Positionner les informations d’entête de retour • Ecrire en retour les données attendues
  • 264. Formation Java Server Faces alphorm.com™© Ce que fait un Servlet • Un servlet est exécuté dans le conteneur Web • Doit examiner l’entête de requête pour déterminer le type de contenu attendu par le client • Récupérer les informations à retourner • Positionner les informations d’entête de retour • Ecrire en retour les données attendues
  • 265. Formation Java Server Faces alphorm.com™© Ce que fait un Servlet • Un servlet est exécuté dans le conteneur Web • Doit examiner l’entête de requête pour déterminer le type de contenu attendu par le client • Récupérer les informations à retourner • Positionner les informations d’entête de retour • Ecrire en retour les données attendues
  • 266. Formation Java Server Faces alphorm.com™© Accès aux textes traduits • Spécifier le nom du bundle et la clé • La langue utilisée est la langue du navigateur ou langue par défaut
  • 267. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Construction des ressources langage • Configuration des langues • Accès aux textes traduits
  • 268. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Faces flows Configurer l’application Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 269. Formation Java Server Faces alphorm.com™© Plan • Définition • Mise en œuvre • Configuration
  • 270. Formation Java Server Faces alphorm.com™© Définition • Une portée spécifique des variables : flowScope • Permet de limiter la validité de certaines données à un enchaînement • Possède un point d’entrée et un point de retour • Ressemble à des appels de processus
  • 271. Formation Java Server Faces alphorm.com™© Mise en œuvre implicite • Donner un nom à ce « flow », utiliser ce nom comme action • Créer un répertoire de ce nom au même niveau que WEB-INF • Y placer Un fichier de config <nom_du_flux>.xml (vide) Un fichier d’entrée <nom_du_flux>.xhtml Autant de fichiers xhtml que nécessaires • Un retour <nom_du_flux>-return.xml
  • 272. Formation Java Server Faces alphorm.com™© Configuration • Le flux peut être configuré Par fichier • Dans le répertoire du flux - Nom du flux, son point de retour - Les paramètres en entrée - Les appels à d’autres flux Par annotations
  • 273. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Définition • Mise en œuvre • Configuration
  • 274. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com La sécurité Configurer l’application Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 275. Formation Java Server Faces alphorm.com™© Plan • Les méthodes d’authentification • La définition des rôles de sécurité • La définition des contraintes de sécurité
  • 276. Formation Java Server Faces alphorm.com™© Les méthodes d’authentification • Authentification de base BASIC utilise une boîte de dialogue standard pour identifier l’utilisateur • Authentification avec formulaire FORM utilise une boîte de dialogue spécifique • Authentification par certificat
  • 277. Formation Java Server Faces alphorm.com™© Comment créer un Servlet • Dériver la classe javax.servlet.http.HttpServlet • Implémenter les méthodes correspondant au protocole HTTP GET,POST,HEAD,PUT,TRACE,OPTIONS, et la méthode service • Utiliser les classes de requête et de réponse La classe javax.servlet.http.HttpServletRequest La classe javax.servlet.http.HttpServletResponse
  • 278. Formation Java Server Faces alphorm.com™© Définition des contraintes de sécurité • L’accès à des ressources va être limité à certains rôles Définir les ressources protégées Définir les rôles autorisés • Dans web.xml
  • 279. Formation Java Server Faces alphorm.com™© Ce qu’on a couvert • Les méthodes d’authentification • La définition des rôles de sécurité • La définition des contraintes de sécurité
  • 280. Formation Java Server Faces alphorm.com™© Site : http://www.alphorm.com Blog : http://blog.alphorm.com Conclusion Fabien Brissonneau Consultant, concepteur et formateur Objets Logiciels
  • 281. Formation Java Server Faces alphorm.com™© Nous avons vu … • Chapitre 1 : L’application Web • Chapitre 2 : La technologie JSF • Chapitre 3 : Les facelets • Chapitre 4 : Expression Language • Chapitre 5 : JSF dans les pages Web • Chapitre 6 : Converters, Listeners et Validators • Chapitre 7 : Les beans managés • Chapitre 8 : Ajax et JSF • Chapitre 9 : Configurer l’application JSF
  • 282. Formation Java Server Faces alphorm.com™© Et la suite ? • La formation JEE persistence • Liaison aux données par Hibernate
  • 283. Formation Java Server Faces alphorm.com™© Conclusion Merci et à bientôt !