jsf : java server faces - page perso de vincent...
TRANSCRIPT
Page | 1
JSF : Java server faces
TABLE DES MATIÈRES
OBJECTIF ...................................................................................................................................................2
VERSION ...................................................................................................... ERREUR ! SIGNET NON DEFINI.
MISE EN ŒUVRE .......................................................................................................................................2
UTILISATION .............................................................................................................................................4
Génération des classes à partir d’un schéma ...................................................... Erreur ! Signet non défini.
Le mapping d'un document XML à des objets (unmarshal)................................. Erreur ! Signet non défini.
La création d'un document XML à partir d'objets (marshal) ............................... Erreur ! Signet non défini.
La génération d'un schéma à partir de classes compilées ................................... Erreur ! Signet non défini.
Page | 2
JSF : Java server faces
OBJECTIF
Quand on tape JSF sur wikipédia voilà ce qu’on peut lire :
« A l'inverse des autres frameworks MVC traditionnels à base d'actions, JSF est basé sur la notion de
composants, comparable à celle de Swing ou SWT, où l'état d'un composant est enregistré lors du rendu de la page, pour être ensuite restauré au retour de la requête.
JSF est agnostique à la technologie de présentation. Il utilise JSP par défaut, mais peut être utilisé avec d'autres technologies, comme par exemple Facelets ou XUL » (dans ce projet on utilisera exclusivement des
JSP).
Le but de cette documentation est de présenter une première approche de JSF, afin de poser les bases
utiles à toutes personnes qui veut se lancer dans un projet web à l’aide de JSF. De plus on s’efforcera de souligner la notion de composant qui est une des spécificités de JSF.
Par ailleurs, ils se trouvent que nous avons déjà effectués un projet en utilisant le Framework Stripes. Nous allons donc profiter pour faire tout au long de cette documentation des comparaisons entre ces deux
Framework afin de guider un éventuel lecteur lors de son choix de Framework.
Pour ce projet nous avons utilisé la version 1.2 de JSF.
POURQUOI UTILISER JSF?
JSF permet :
- une séparation de la couche présentation des autres couches (MVC)
- un mapping entre l’HTML et l’objet
- un ensemble de composants riches et réutilisables
- une liaison simple entre les actions côté client de l’utilisateur (eventlistener) et le code Java côté
serveur
- Création de nouveaux composants graphiques
- JSF peut être utilisé pour générer autre chose que du HTML (XUL, XML, WML, …)
Mais surtout, JSF (tout comme les autres framework MVC) permet d’imposer des normes et une
structuration dans un projet. Il est donc idéal dans le cadre d’un projet concernant plusieurs personnes afin
qu’il soit cohérent.
INSTALLATION
Pour utiliser JSF, nous avons déja mis en place les outils suivant :
- Java SE 6 JDK
- Eclipser 3.4 IDE
Page | 3
JSF : Java server faces
- Tomcat 6.0
- JSTL 1.2
A present mettons en place JSF (tuto inspire du site http://balusc.blogspot.com/2008/01/jsf-tutorial-with-eclipse-
and-tomcat.html)
ETAPE 1: TÉLÉCHARGEMENT DE JSF
Commencez par télécharger Mojarra à cette adresse :
https://javaserverfaces.dev.java.net/download.html
Choisissez la dernière version sur le lien 1.2_09 binary. Le site vous propose de télécharger un zip du nom de :
mojarra-1.2_09-b02-FCS-binary.zip
Faites extract avec winzip, et mettez le dans votre dossier java (généralement C:\Java ou C:\Apps\Java)
ETAPE 2: CONFIGURATION DE ECLIPSE
A present allez sur Eclipse. Lors de cette étape nous allons effectué plusieurs operations visant à simplifier le codage
ultérieur. Suivez le chemin suivant :
Window » Preferences » Web » JSP Files » Editor » Templates
Remplissez dans les champs les informations suivantes :
- Name : New JavaServer Faces (JSF) Page (xhtml strict)
- Context : New JSP
- Pattern :
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Page | 4
JSF : Java server faces
<f:view>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Insert title here</title>
</head>
<body>
${cursor}
</body>
</html>
</f:view>
Ce qui doit donner :
Ensuite, toujours dans le menu preferences, suivez le chemin suivant :
Web » JavaServer Faces Tools » Validation
Faites les opérations suivantes :
1- Sous Type Assignment Problems à la ligne Method expression signature incompatibility mettez
Ignore
2- Sous Type Coercion Problems à la ligne Unary operation number coercion problems mettez Ignore
3- Sous Type Coercion Problems à la ligne Unary operation boolean coercion problems mettez Ignore
Page | 6
JSF : Java server faces
Et enfin toujours dans le même menu, en suivant le chemin :
General » Editors » Text Editors » Spelling
et faites disabled :
Page | 7
JSF : Java server faces
ETAPE 3: CRÉATION D ’UN PROJET
Créez un nouveau projet de la façon suivante :
Page | 8
JSF : Java server faces
Ensuite dans la page de création, sélectionnez JavaServer Faces v1.2 Project comme ceci :
Page | 9
JSF : Java server faces
Faites deux fois next, ensuite, vous arrivez sur la page JSF capabilities. Cliquez sur news vous arrivez sur
cette page :
Page | 10
JSF : Java server faces
Rentrez comme ci-dessus :
- Library Name : Mojarra 1.2_09
- Version : v1_2
- Library : après avoir appuyé sur Add, sélectionnez dans votre dossier java, le zip que vous avez
déployé le chemin suivant :
\Java\mojarra-1.2_09-b02-FCS\lib
Ajoutez de cette manière les librairies jsf-api.jar et jsf-impl.jar. Faites enfin Finish et vous revenez sur
cette page :
Page | 11
JSF : Java server faces
Avant d’appuyer sur finish pensez à retirer dans URL Mapping Patterns /faces/*et d’ajouter *.jsf.
Il est possible qu’on vous demande pour valider une licence, faites juste I Agree si vous l’avez.
Voilà votre projet est créé, vous devriez obtenir quelque chose du genre :
Page | 12
JSF : Java server faces
COMPARAISON AVEC STRIPES
Stripes sur ce point est beaucoup plus facile à installer que JSF, pour Stripes il suffit juste de récupérer les
librairies sur internet et de les mettre sur le projet.
PREMIER PAS SUR LE PROJET JSF
Vous voilà prêt à attaquer voter projet, cependant il vous faudra vous familiarisez avec la façon de
fonctionnez de JSF. Pour ce faire voici un petit exemple à dérouler.
Le but est juste d’avoir une jsp où on rentre son nom, son prénom est on l’affiche dans une autre jsp.
Page | 13
JSF : Java server faces
ETAPE 1: CRÉATION D ’UN BEAN
Pour créer un bean, double cliquez sur faces-config.xml qui se trouve dans le WEB-INF du projet. Vous
arrivez sur cette page :
Ce menu vous ouvre beaucoup de possibilités. Dans ce tutoriel on n’en verra qu’une infime partie.
Cliquez dans le menu du bas sur : Managed Bean. Sélectionnez request dans le tableau de gauche et faites
add.
Vous arrivez ici :
Page | 14
JSF : Java server faces
Sélectionnez le 2e choix, et créez votre objet comme vous le faites en temps normal (dans cet exemple on a
créé l’objet personneBean dans le package bean :
Page | 15
JSF : Java server faces
Faites un tour dans le bean, ajoutez lui nom et prenom avec des getters/setters :
Page | 16
JSF : Java server faces
ETAPE 2: CRÉATION DE LA PREMIÈRE JSP
Commencez par ajouter la jsp depart.jsp.
Si vous avez bien fait l’installation vous avez ceci :
Page | 17
JSF : Java server faces
Fermez la fenêtre, faites clic droit sur la jsp puis Open with et enfin Web Page Editor. Vous avez :
Page | 18
JSF : Java server faces
Remarquez la palette en haut à droite. Allez dans la barre JSF HTML, et sélectionnez Form. Allez dans la
console en bas à droite et cliquez entre les deux balises body. Vous avez alors :
De la même façon, sélectionnez Panel Grid et mettez le entre les balises Form. Remplacez à présent le 2e et
le 3e item par des Text Input. Finissez ensuite par ajouter dans les output test nom et prenom et dans les
inputs : #{personneBean.nom} et #{personneBean.prenom}. Un peu de mises en forme et vous obtenez
ceci :
Page | 19
JSF : Java server faces
Rajouter enfin juste avant la balise de fin de formulaire un commandButton avec l’action valide :
ETAPE 3: CRÉATION DE LA DEUXIÈME JSP
De la même façon que la première jsp, vous obtenez la jsp arrivee.jsp :
Page | 20
JSF : Java server faces
ETAPE 4 : LIEN ENTRE LES 2 JSP
Retourner dans faces-config.xml, l’onglet Navigation Rule. Dans le menu de droite, cliquez sur page, sélectionnez
depart et cliquez sur la page centrale. Faites de même pour arrivee. Faite le link de depart vers arrivee. Ensuite, faite
click droit, show view, properties sur le link et mettez valide dans From Outcome. Voici ce que vous obtenez :
Page | 21
JSF : Java server faces
Voilà, il ne vous reste plus qu’à exécuter depart.jsp et tester le tout. Voilà ce que vous devez obtenir :
Depart.jsp :
Arivee :
Page | 22
JSF : Java server faces
COMPARAISON AVEC STRIPES
Au niveau du MVC. JSF propose beaucoup d’interfaces qui aident énormément au développement. A l’opposée,
Stripes bien que plus facile à mettre en place doit être configuré à la main (cependant, sa configuration est
relativement simple). Le très bon point pour JSF, c’est la possibilité de visualiser la relation avec toutes les jsp, il
permet de mieux gérer la cohérence de l’ensemble du projet.