Formation JSF : Java Server Faces

JSF : Java Server Faces

  • Comprendre les nouveautés de la version JSF 2.2 (JSR 344)

  • Comprendre et suivre le cycle de vie d’une requête JSF 2

  • Développer des écrans JSF2 avec la technologie Facelets intégrée

  • Coder des beans managés (model + controler)

  • Mettre en œuvre le langage d’expression Unified EL

  • Utiliser les fonctionnalités Ajax de JSF 2

  • Étendre JSF 2 avec les composants Ajax de Primefaces

  • Intégrer JSF 2 avec Spring et les Web Services

Avoir la connaissance des langages Java, HTML, CSS, Javascript.
La connaissance de la plate-forme Java EE est nécéssaire.

Cette formation est conçue pour la version JSF 2 du framwork.


Programme de la formation JSF : Java Server Faces

Introduction JSF 2

Rappels clés JEE 7

Les 8 Objectifs de JSF

JSF : un framework orienté ’composant’

Spécifications JSF 2.0, 2.1 et 2.2 (JSR 344)

Nouveautés JSF 2.2 : Faces flow, MultiTemplating, HTML5

Implémentation de référence : Mojarra

Jar : javax.faces-2.2.1.jar

Les concurrents directs et indirects de JSF 2

La configuration JSF 2

Les fichiers clés : web.xml et faces-config.xml

La configuration du contrôleur FacesServlet dans web.xml

Url gérés : *.faces, *.jsf, /faces/*

Paramétrer le mode développement : javax.faces.PROJECT_STAGE

Annotations ou xml ?

Le cycle de vie requête JSF 2

Les 6 étapes clés du cycle de vie requête JSF :

Etape 1 : restauration de la vue

Etape 2 : application des paramètres de la requête

Etape 3 : validation et convertion

Etape 4 : mise à jour du model

Etape 5 : logique métier

Etape 6 : rendu de la réponse

Utilisation du Phaselistener

Bean managés

Le rôle dans l’architecture JSF

Les annotations : @ManagedBean, @ManagedProperty

L'annotation : @SessionScoped, @RequestScoped

Les propriétés par défaut : ’name’, ’scope’

Facelets

Besoin : industrialiser création écrans

xmlns:ui="http://java.sun.com/jsf/facelets

Utilisation XHTML

Notion de template

ui:composition, ui:define, ui:insert, ui:include

Débogage

La gestion des ressources d’un projet JSF

La convention : répertoire ’resources’

La gestion des feuilles de style : h:outputStylesheet

La gestion des images : h:graphicImage

La gestion des scripts javascript : h:outputScript

attribut ’library’

attribut ’name’

La bibliothèque des composants standards JSF

30 Composants JSF : visibilité, style CSS, binding

Passage de paramètres aux composants

Composants d’affichage texte et image

Composants de saisie et "value change event"

Composants de commande "action event"

Combo-box, listes, cases à cocher et boutons radio

PanelGroup et le PanelGrid

DataGrid

La gestion des messages utilisateur

Structure des messages JSF : la classe FacesMessage

Afficher un message avec HtmlMessage et HtmlMessages

Créer un message applicatif avec la classe FacesContext

La validation avec JSF

Principe de la validation JSF

Méthode de validation dans un backing-bean

Les validators standards de l’API JSF

Modèle de programmation pour écrire un validator personnalisé

Validation avec implémentation JSR 303 : Hibernate validator

La gestion des évènements dans JSF

Modèle évènementiel JSF

Création d’un évènement

Ecouteurs d’évènements

La navigation JSF

Règles de navigation : par page, globale, par action

Le formulaire JSF

Création formulaire JSF (XHTML) : balises ’html’ et ’core’

Créer le @ManagedBean du formulaire

Langage d’expression JSF : Unified EL

Validation des champs et cycle de vie

Conversion implicite des champs

Les composants additionnels

Les limites des composants JSF

Les atouts et la configuration composants Primefaces

Les atouts et la configuration composants Richfaces

Internationaliser une application JSF

Rappel internationalisation Java

La gestion du ’locale’ : par défaut, personnalisée

Les catalogues de traduction : libellés,

Les messages applicatifs, messages d’erreur de validation

Les notions avancées

Attribut "immediate" des composants de commande et de saisie

Mise en oeuvre d’un PhaseListener

Intéragir avec le framework

Classes FacesContext, VariableResolver, ELResolver,

Classes NavigationHandler, ViewHandler

Intégrer JSF avec les autres technologies

Intégration avec les JSP / JSTL

Intégration avec EJB3

Intégration avec Spring

Intégration avec WebServices Soap/Rest