Formation JSF (JavaServer Faces) Développer une application Web JEE avec JSF et Ajax

Objectifs

  • Comprendre les nombreux avantages fournis par le modèle de développement JSF
  • Réaliser une application web en mettant en oeuvre JSF
  • Intégrer des comportements AJAX à une application JSF

Contenu

Présentation

  • Un framework web MVC2 supplémentaire ?
  • L'originalité de JSF
  • Positionnement par rapport aux JSP/Servlet et à Struts
  • JSF, une spécification avant tout
  • Les implémentations principales: JSF RI et MyFaces

Démarrer un projet JSF

  • Structure d'un projet
  • Librairies obligatoires
  • Configuration à effectuer
  • Développements et tests

Création d'un écran simple

  • Principe de l'arbre de composants graphiques
  • Principe du rendu de composant avec les Renderers
  • Recours aux bibliothèques de balises JSF (html et core)
  • Validateurs et convertisseurs de base

Gestion de la navigation

  • Gérer la navigation de manière déclarative dans faces-config.xml: navigation simple / avancée
  • Déclenchement des traitements sur action de l'utilisateur
  • Règles d'éligibilité et de choix des règles de navigation
  • Pièges à éviter et bonnes pratiques à adopter dans l'écriture de ces règles

La notion de binding

  • Définition, rôle et création d'un BackingBean
  • Établissement de liaison (binding) à l'aide du JSF EL (Expression Language): un EL amélioré
  • Les différents types de binding et leur utilité: component binding, property binding et method binding
  • Impacts sur les BackingBeans : normes à respecter et limitations induites

Les composants standards

  • Composants de saisie : champ texte, case à cocher, bouton radio, liste à choix unique/multiples
  • Gestion de la mise en page avec le composant Panel
  • Gestion des listes de données avec le composant Table
  • Composants de gestion des formulaires : formulaire, bouton, lien

Intérêts et utilisation du FacesContext

  • Gestion des Messages (création/affichage) et de l'internationalisation (i18n)
  • Accès aux objets de la requête JSF : objets sous-jacents et objets implicites
  • Les différentes méthodes d'accès aux BackingBeans

La gestion des événements

  • Les différents types d'événements
  • Les listeners associés

Les 6 étapes de traitement d'une requête JSF

Créer son propre validateur

  • Les différentes stratégies envisageables : leurs avantages et inconvénients
  • Création, configuration et utilisation d'un 'Custom Validator'

Créer son propre convertisseur

  • Les différentes stratégies envisageables: leurs avantages et inconvénients
  • Création, configuration et utilisation d'un 'Custom Converter'

Architecture

  • JSF et l'injection de dépendance
  • Conditions de compatibilité de scope entre BackingBeans
  • Intégration à une couche DAO (exemple : Hibernate)
  • Intégration à une couche métier (exemple : Spring)
  • Intégration à une base de données (exemple : MySql)

Créer ses propres composants

  • Créer ou étendre un composant graphique
  • Créer et déclarer une taglib JSF
  • Créer et déclarer un renderer

L'outillage Eclipse Webtool JSF

  • Configuration et ajout du support JSF sur un projet Web dynamique
  • L'éditeur graphique de navigation
  • La complétion des balises JSF, de l'Expression Language, des validateurs, des actions methods, des convertisseurs...
  • Faciliter l'internationalisation (i18n) avec l'accès aux ressources bundles

« Ajaxifier » une application JSF

  • Introduction aux technologies AJAX
  • Fonctionnement du framework Ajax4Jsf
  • Effectuer des requêtes Ajax à partir d'éléments JSF
  • Présentation des composants Ajax4Jsf
  • Actualisation partielle et asynchrone d'un écran JSF
  • Gérer les erreurs Ajax