JUG Summer Camp – JSF 2 par la pratique

Les conférences


JSF 2– Damien Gouyette (présentation)
par Ellène Dijoux

Damien Gouyette, auteur du blog C’est pas dur, nous présente au travers d’un cas concret l’utilisation de JSF 2. Son projet disponible sur github est un projet de blog réalisé avec JSF 2.

Le rendu visuel avec Facelets

JSF est un framework orienté composant, et pour réaliser son projet il a utilisé Facelets pour la vue. Facelets permet de réaliser le templating des pages et des composants. Il a été utile pour le découpage et l’organisation des composants du blog. Il évite l’apparition des classes Java dans les pages JSP et participe au respect du pattern MVC (Modèle Vue Contrôleur).

Le traitement

L’annotation @ManagedBean permet d’identifier la classe qui réalise le traitement, plusieurs annotations sont disponibles pour définir le cycle de vie des Managed Beans : @ApplicationScoped, @SessionScoped, @ViewScoped, @RequestScoped, @NoneScoped.

La navigation

Aves JSF 2, il n’est plus nécessaire de définir et maintenir le verbeux faces-config.xml. Le ManagedBean peut maintenant retourner une valeur qui sera considérée comme étant le nom de la page sans l’extension. S’il ne trouve pas de fichier par défaut, il se conforme aux règles de navigation définies. Un autre souci auquel nous pouvons être confrontés avec JSF est la double validation de formulaire, le problème peut être résolu en passant par la méthode GET. Les URLs peuvent être bookmarkables grâce à trois composants : <h:link />, <h:button />, <h:viewParam/>.

Validation

Grâce à Hibernate Validator, la définition des contraintes sur les champs ne se fait qu’à un seul endroit. Il est possible de valider des adresses email, la taille d’un texte, …

Requête Ajax

La balise <f:ajax /> permet de définir une requête Ajax avec les attributs :

  • execute qui a plusieurs valeurs possibles : @all, @none, @form, @this ;
  • render qui indique les composants à soumettre côté serveur.

Composant composite

Le composant composite permet de créer ses propres composants réutilisables. Pour son projet de blog, Damien a créé un composant Twitter. Pour ce faire, il définit des ressources statiques tel qu’un twitter.xhtml où le code du composant est défini avec sa CSS et ses images. On utilise ensuite les balises  <cc:interface /> et <cc:attribute /> pour définir les paramètres d’entrée à fournir au composite que l’on pourra utiliser lors de l’appel au composant. On peut ensuite associer du code métier à notre composant. Le principe est simple : créer une classe java respectant la même hiérarchie que le composant XHTML. Par exemple pour un composant mycomponents/Twitlistjava, on crée une classe mycomponents. Twitlistjava qui implémente l’interface NamingContainer.

Outils

Pour développer en JSF 2 actuellement, plusieurs librairies de composants sont à notre disposition : RichFaces 4.0 M2, IcesFaces 2.0 béta 1, PrimeFaces 2.0 … Les serveurs d’application disponibles sont : Glassfish, Tomcat, JBoss et Jetty. Pour développer, vous aurez à votre disposition NetBeans 6.9, Eclipse, JBoss Tools et IntelliJ IDEA.

Synthèse

Parmi les nouvelles fonctionnalités, nous avons maintenant :

  • Ajax inclus et optimisé ;
  • les profils d’utilisation ;
  • externalisation des ressources statiques ;
  • 2 nouveaux scopes : ViewScope et FlashScope ;
  • le support du GET en plus du POST.

On peut aussi noter les améliorations suivantes :

  • le développement de composant plus facilement ;
  • la navigation n’est plus aussi lourde à définir (plus de faces-context.xml) ;
  • la configuration XML est maintenant remplacée par des annotations.

Tags : , ,

Ellène DIJOUX SIBER est développeur Java freelance. Elle est une membre active de Duchess France et a fait partie de l’équipe d’organisation de la conférence Agile France en 2013. Passionnée par le dessin, elle tient également un blog où elle dessine le quotidien des développeurs.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Nom*

Email

Website

20 + 10 =

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

En continuant à utiliser le site, vous acceptez l’utilisation des cookies. Plus d’informations

Les paramètres des cookies sur ce site sont définis sur « accepter les cookies » pour vous offrir la meilleure expérience de navigation possible. Si vous continuez à utiliser ce site sans changer vos paramètres de cookies ou si vous cliquez sur "Accepter" ci-dessous, vous consentez à cela.

Fermer