jsf : java server faces - page perso de vincent...

23
Groupe JAXB - JSF 18/05/2010 JSF : Java server faces

Upload: dinhtuong

Post on 16-Sep-2018

229 views

Category:

Documents


0 download

TRANSCRIPT

Groupe JAXB - JSF

18/05/2010 JSF : Java server faces

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 | 5

JSF : Java server faces

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.