jsf

Post on 07-Jan-2016

32 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

David Mihura Eric Le Merdy. JSF. Java Server Faces. Master 2 Pro GLR TER. Plan. Problématique Bref Historique Solution JSF Principes Mise en Œuvre des principes Quelques outils Bilan Conclusion. Problématique. Evolutions des besoins : Applications Web - PowerPoint PPT Presentation

TRANSCRIPT

20/04/23

JSF

Java Server Faces

Master 2 Pro GLRTER

David MihuraEric Le Merdy

JSF – Le Merdy Eric – Mihura David20/04/23 2

Plan

Problématique Bref Historique Solution JSF

Principes Mise en Œuvre des principes

Quelques outils Bilan Conclusion

JSF – Le Merdy Eric – Mihura David20/04/23 3

Problématique

Evolutions des besoins : Applications Web Problème : Comment concevoir une

application Web de la même façon qu'une application traditionnelle

Plusieurs solutions existent :WebForms : Microsoft Struts : Apache JSF : Sun

JSF – Le Merdy Eric – Mihura David20/04/23 4

Bref Historique

Divergences d'approche selon les éditeurs. Plus grande séparation des concepts.

Sun Open-source Microsoft

19961997

Servlet PHP,PERL,etc… ASP

1998 JSP

MVC

ASP.NET, WebForms

2000 Struts

2004 JSF

20/04/23 JSF – Le Merdy Eric – Mihura David 5

Solution JSF

Framework de création d’interfaces graphiques pour les applications Web

JSF – Le Merdy Eric – Mihura David20/04/23 6

Un concept en évolution

Demande de spécification en Mai 2001 Plusieurs versions de spécifications Sun

Final : 1.0 (début 2004) Maintenance : 1.1 (fin 2004)

Plusieurs implémentations Référence (Sun) compatible 1.1 MyFaces (Apache) Ecruiser compatible 1.1

Une version 1.2 est en cours

JSF – Le Merdy Eric – Mihura David20/04/23 7

JSF et MVC Modèle :

Couplé à JSF par un Bean géré. Vue :

JSP + balises JSF Contrôleur :

Servlet (FaceServlet)Règles définies dans un fichier xml

20/04/23 JSF – Le Merdy Eric – Mihura David 8

Principes

JSF – Le Merdy Eric – Mihura David20/04/23 9

Principes : composants graphiques

Fonctionnalité du composant définie dans la classe du composant

Plusieurs rendus pour un même composant

Possibilité de définir des rendus

Etiquette Rendu

h:command_button

h:command_link hyperlink

JSF – Le Merdy Eric – Mihura David20/04/23 10

Principe : gérer des événements

Chaque composant génère des événements (Events)

Le serveur possède des écouteurs (Listeners) qui traitent les événements

JSF – Le Merdy Eric – Mihura David20/04/23 11

Principes : gestion de l’état des composants

L’état peut changer chez le client entre 2 requêtes

JSF prend en charge la gestion de cet état

JSF – Le Merdy Eric – Mihura David20/04/23 12

Exemple d’événements

AccepterX EVENEMENT

value_changed

Gérer

événement

Changement état

action

Enregistrement formulaire

JSF – Le Merdy Eric – Mihura David20/04/23 13

Principes : validation et conversion

Validation :Agit sur les composants graphiques (textfield)Personnalisation des validateurs (bornes, types,

etc.)Lève des erreurs

Conversion :Formatage des donnéesEx : 15000 → 15,000Personnalisation possible

JSF – Le Merdy Eric – Mihura David20/04/23 14

Principes : navigation des pages

Définitions de l’enchaînement des pages par un ensemble de règles de navigation

JSF – Le Merdy Eric – Mihura David20/04/23 15

Principes : internationalisation

Possibilité de définir des locales Correspondance

clé → valeur internationalisée

useridLabel=Nom de l'UtilisateurpasswordLabel=Mot de PasseloginSubmitLabel=Connectez

useridLabel=UseridpasswordLabel=PasswordloginSubmitLabel=Login

JSF – Le Merdy Eric – Mihura David20/04/23 16

Principes : balises JSF

Rappels JSP:Page html qui peut contenir du code JavaA l’exécution cette page est convertie en

servletContient des balises JSP

JSTL ( bibliothèque de balises standard pour java)

JSF propose une bibliothèque de balises

20/04/23 JSF – Le Merdy Eric – Mihura David 17

Mise en Œuvre des principes

JSF – Le Merdy Eric – Mihura David20/04/23 18

Etude de cas

Une page de login Un seul utilisateur

valide 3 pages :

Authentification Accueil (si réussie) Erreur (sinon)

JSF – Le Merdy Eric – Mihura David20/04/23 19

1. Le bean du support

Dans un package jsfLogin

JSF – Le Merdy Eric – Mihura David20/04/23 20

2. Déclaration du bean dansface-config.xml

<managed-bean> <managed-bean-name>LoginServer</managed-bean-name> <managed-bean-class>jsflogin.loginServer</managed-bean-class> <managed-bean-scope>session</managed-bean-scope></managed-bean>

JSF – Le Merdy Eric – Mihura David20/04/23 21

3. Création des pages<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

Import des librairies

Ressources (internationalisation)

Utilisation des balises

<f:loadBundle basename="jsflogin.Resources" var="jsfloginBundle"/>

<h:form id="loginForm">

<h:input_text id="userid" required="true" value="#{LoginServer.userid}" >

<f:validate_length minimum="4" maximum="7" />

</h:input_text>

<h:command_button id="submit" action="#{LoginServer.loginAction}"

value="#{jsfloginBundle.loginSubmitLabel}"/>

</h:form>

JSF – Le Merdy Eric – Mihura David20/04/23 22

4. Navigation des pagesface-config.xml

<navigation-rule> <from-view-id>/login.jsp</from-view-id> <navigation-case> <description>Handle case for successful login</description> <from-action>#{LoginServer.loginAction}</from-action> <from-outcome>success</from-outcome> <to-view-id>/success.jsp</to-view-id> </navigation-case> <navigation-case> <description>Handle case for unsuccessful login</description> <from-action>#{LoginServer.loginAction}</from-action> <from-outcome>failure</from-outcome> <to-view-id>/failure.jsp</to-view-id> </navigation-case></navigation-rule><navigation-rule> <from-view-id>/success.jsp</from-view-id> <navigation-case> <from-outcome>return</from-outcome> <to-view-id>/login.jsp</to-view-id> </navigation-case></navigation-rule>

return

success

failure

/login.jsp

/failure.jsp

/success.jsp

20/04/23 JSF – Le Merdy Eric – Mihura David 23

Quelques outils

Java Studio CreatorPlugin Eclipse : JSF StudioD’autres outils

JSF – Le Merdy Eric – Mihura David20/04/23 24

Java Studio Creator (1/3)

Produit Sun Licence propriétaire IDE complet

Serveur J2EE intégréBasé sur NetBeans

Développement « à la souris »

JSF – Le Merdy Eric – Mihura David20/04/23 25

Java Studio Creator (2/3)

Points fortsDéveloppement rapideTout est intégré

Points faiblesMoins de maîtrise sur le code généréEntièrement Sun (forte dépendance)Produit jeune

Manque de robustesse

JSF – Le Merdy Eric – Mihura David20/04/23 26

Java Studio Creator (3/3)

JSF – Le Merdy Eric – Mihura David20/04/23 27

Eclipse : JSF Studio (1/3)

Plug-in propriétaire pour Eclipse Gère plusieurs serveurs d’application

(Tomcat, JBoss, etc …) Perspective JSF Template de projets Editeur graphique pour le face-config Edition assistée de code JSP

JSF – Le Merdy Eric – Mihura David20/04/23 28

Eclipse : JSF Studio (2/3)

Points forts:Puissance d’EclipseEditeur JSP complet Indépendant du serveur

Point faibleManque de performance

JSF – Le Merdy Eric – Mihura David20/04/23 29

Eclipse : JSF Studio (3/3)

JSF – Le Merdy Eric – Mihura David20/04/23 30

D’autres outils JSF

MyEclipse WebFaces Faces console

Standalone JDeveloper JBuilder NetBeans Eclipse

20/04/23 JSF – Le Merdy Eric – Mihura David 31

Bilan

JSF vs StrutsAttentes respectées ?

JSF – Le Merdy Eric – Mihura David20/04/23 32

JSF vs Struts (1/3)

Rappels Struts :Framework d’application WebLicence ApacheMêmes principes (MVC,fichier de navigation)Pas de spécifications formalisées

JSF – Le Merdy Eric – Mihura David20/04/23 33

JSF vs Struts (2/3)

Struts est plus mature Meilleur facteur de confiance pour JSF

(Ex: support IBM pour WebSphere) Struts contraint le modèle, JSF est plus

flexible

JSF – Le Merdy Eric – Mihura David20/04/23 34

JSF vs Struts (3/3)

La vue est plus générique dans JSF grâce à sa conception des composants

JSF est plus extensibleBalises personnalisésComposants personnalisés

Conclusion :JSF a su tirer expérience de Struts

JSF – Le Merdy Eric – Mihura David20/04/23 35

Attentes respectées (1/2)

JSF est-il une bonne solution ?StandardiséRègles de navigationMise en œuvre des composants graphiques

Approche RAD

JSF – Le Merdy Eric – Mihura David20/04/23 36

Attentes respectées (2/2)

MVCModèle indépendantSéparation du comportement et du renduApproche page du contrôleur : spécifique aux

applications Web

20/04/23 JSF – Le Merdy Eric – Mihura David 37

Conclusion

JSF – Le Merdy Eric – Mihura David20/04/23 38

Le futur de ce Framework

Intégration de JSF 1.2 à la future spécification J2EE 5.0

Participation de l’industrie à la spécification

Pas de conversion Struts → JSF Adoption de JSF pour les nouveaux

projets

top related