Javaserver Faces Première approche

Preview:

DESCRIPTION

Javaserver Faces Première approche. Evolution des technologies web Servlets JSP MVC Model 1 : servlets + JSP MVC Model 2 : un seule servlet + JSP Java Server Faces. JSF, c'est quoi ?. Framework qui facilite et standardise le développement d'applications web - PowerPoint PPT Presentation

Citation preview

Javaserver FacesPremière approche

● Evolution des technologies web

1) Servlets

2) JSP

3) MVC Model 1 : servlets + JSP

4) MVC Model 2 : un seule servlet + JSP

5) Java Server Faces

JSF, c'est quoi ?

● Framework qui facilite et standardise le développement d'applications web

● S'appuie sur les technologies qui l'ont précédé

● Peut être mis en oeuvre par des outils pour permettre un développement de type RAD– Java Studio Creator - Sun – WSAD - IBM– JBuilder Borland– JDevelopper - Oracle

JSF, c'est quoi ?

● Peut être codé à la main, l'utilisation d'un outil est fortement recommandée

● Technologie côté serveur orientée interface utilisateur

● Sépare clairement la partie « interface » de la partie « métier »

● Version 1.0 de Java Server Faces: JSR-127 validée en mars 2004

● http://java.sun.com/j2ee/javaserverfaces/

JSF va plus loin

● Assemblage de composants serveur qui génèrent le code de leur rendu

● Possibilité d'associer certains composants à une source de données encapsulée dans un bean

● Utilisation d'événements et de listener● Conversion et validation des données avant

leur utilisation dans les traitements

JSF va plus loin

● Possibilité d'étendre les différents modèles et de créer ses propres composants

● Configuration de la navigation entre les pages

● Support de l'internationalisation● Support pour l'utilisation par des outils

graphiques

JSF se compose:

● d'une spécification qui définit le mode de fonctionnement du framework

● d'une API : l'ensemble des classes de l'API est contenu dans les packages javax.faces

● d'une implémentation de référence● de bibliothèques de tags personnalisés

fournies par l'implémentation pour – utiliser les composants dans les JSP– gérer les événements– valider les données saisies

Cycle de vie d'une requête

● Création de l'arbre de composants● Extraction des données des différents

composants de la page● Conversion et validation des données● Extraction des données validées et mise à

jour du modèle de données (javabean)● Traitements des événements liés à la page● Génération du rendu de la réponse

Cycle de vie d'une requête

Configuration d'une application

● La structure est celle d'une application j2ee

/

/WEB-INF

/WEB-INF/web.xml

/WEB-INF/lib

/WEB-INF/classes

Les bibliothèques nécessaires

jsf-api.jar

jsf-ri.jar

jstl.jar

standard.jar

common-beanutils.jar

commons-digester.jar

commons-collections.jar

commons-logging.jar

Configuration : web.xml

Configuration: faces-config.xml

● Ce fichier est au même niveau que web.xml● Il peut aussi être découpé en plusieurs

fichiers différents– Dans ce cas:

Support des fichiers de ressource pour

l'internationalisation

Backing beans

EL: le langage d'expression

● La liaison des données entre le backing bean et la page s'effectue au moyen d'expressions:

<h:inputText value="#{login.nom}"/>

<h:inputText value="#{login["nom"]}"/>

<h:inputText value="#{login.['nom']}"/>

<h:outputText value="#{messages.salutation}, #{utilisateur.nom}!"/>

Composants graphiques

JSF propose :– un ensemble de classes qui gèrent le

comportement et l'état d'un composant– un modèle pour assurer le rendu du composant

pour un type d'application (par exemple HTML)– un modèle de gestion des événements émis par

le composant reposant sur le modèle des listeners

– la possibilité d'associer un composant de conversion ou de validation des données

12 composants de base

Les modèles de rendu

● L'implémentation de référence propose un seul modèle de rendu (HTML)

● Il est possible d'associer plusieurs modèles de rendu● L'association entre un composant et son modèle de

rendu est réalisée dans un RenderKit● Par exemple, un objet de type UISelectOne peut être

rendu par

– un ensemble de bouton radio – une liste– une liste déroulante

Utilisation dans une jsp

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

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

● Tag view à la racine:

La taglib core

La taglib html (1)

La taglib html (2)

Exemple (1)

Exemple (2)

Exemple (3)