Tutoriel Java Server Faces 2.2

By , 14/03/2014

Depuis quelques années, je trouve le framework JSF très intéressant. Je souhaite aujourd’hui rédiger un tutoriel adapté à tous les niveaux pour promouvoir la version associée à Java J2EE7.

Pour avoir été utilisateur du serveur d’application JBoss depuis de nombreuses années, j’avoue avoir vécu une révolution lors de la sortie de JBoss7. Aujourd’hui ce serveur répond au nom de Wildfly, je vous propose de l’utiliser pour la suite du tutoriel.

Installer un serveur d’application

La plupart des tutoriels que j’ai trouvé sur internet et dans la littérature se basent sur la spécification Java Server Faces (JSR-314). De ce fait, les exemples utilisent souvent des classes spécifiques au framework JSF alors que dans l’ecosystème J2EE, il est recommandé d’utiliser les classes d’autres JSR plus généralistes. Je pense notamment aux anotations provenant du package javax.faces.bean. Cela malheureusement entretient la confusions entre les objets de J2EE.

Je vous propose donc de vous mettre directement dans la configuration Java J2EE7 en installant le serveur d’application Wildfly-8.0.0.Final. La documentation d’installation est ici.

Remarque, le tutoriel est disponible sur Github à l’adress suivante : https://github.com/yanLanglois/jsf-2.2-tutoriel. Il est réalisé sous la forme d’un projet Maven. Pour chaque module correspondant à un exemple, il est possible d’utiliser le plugin wildfly pour démarrer le serveur, déployer l’application grâce à la commande mvn clean wildly:run (pour arrêter le serveur CTRL-C).

Vous pouvez donc ignorer l’étape d’installation si vous choisissez l’option maven.

Quick Start

Mise en place rapide d’un projet avec Maven :

Ce qu’il faut retenir : pour commencer un projet JSF2.2 avec Maven, les dépendances minimales nécessaires sont les suivantes :

 <dependencies>
		<!-- JSF -->
		<dependency>
			<groupId>javax.faces</groupId>
			<artifactId>javax.faces-api</artifactId>
			<version>2.2</version>
			<scope>provided</scope>
		</dependency>
		<!-- CDI pour les injections -->
		<dependency>
			<groupId>javax.enterprise</groupId>
			<artifactId>cdi-api</artifactId>
			<version>1.1-PRD</version>
			<scope>provided</scope>
		</dependency>
	</dependencies>

Navigation

Il existe plusieurs façons de gérer la navigation sur une application JSF :

  • De façon implicite : JSF2.2 gérer automatiquement les noms des vues en fonction des noms des fichiers XHTML. Il n’est plus nécessaire de déclarer toutes les vues dans le fichier faces-config.xml
  • Via les règles de navigation : navigation-rules dans le fichier faces-config.xml
  • Via une redirection

JSF Tag Library : les composants standards

Validation et converter

Cas concrets

Quoi de mieux que des exemples pratiques :

A venir

Scopes, resource bundles, d’autres JSF Tag Library, Facelets Tags, event handler

Leave a Reply


8 × = fifty six

OfficeFolders theme by Themocracy