3. Java Server Faces est un framework Java
pour le développement d’application web
Orienté composants
Basé sur le pattern MVC
Quoi ??
Quand ??
Comment ??
3
12. Technologie de présentation pour le
développement d’application web.
Spécifiquement
Spécifiquement Plus
Plus
Création des
Création des
développée pour
développée pour performante et
performante et
Templating
Templating composants
composants
JSF
JSF plus légere que
plus légere que
personnalisés
personnalisés
JSP
JSP
P
Facelets
JS
12
13. Voyons ce qu’on
Voyons ce qu’on
peut faire avec
peut faire avec
les facelets !!!!
les facelets
tm
.xh
13
14. JSF 2.0 Sauvegarde d’état partielle (juste l’état sauvée/restaurée
La totalité de l’arbre de composants est modifié)
web.xml
14
15. Ajax est essentiel pour construire des
applications Web convaincantes et compétitives.
Plusieurs solution s JSF/Ajax disponibles
Pas de prise en charge native
Un usage déclaratif ,plus commode pour les auteurs de pages avec le tag
de la bibliothèque « core » de JSF 2.0
<f:ajax>
15
16. Se déclenchent lors de la phase ProcessValidation
Le but d'un converter est d’affiner le modèle
Le but d'un validator est de protéger le
modèle
16
17. Je veux un peu de
Je veux un peu de
dynamisme dans
dynamisme dans
mes pages !!!!
mes pages
j ax>
<f:a
17
offrant d'une part, une architecture MVC et d'autre part, une approche composant (l'état d'un composant est enregistré lors du rendu de la page, pour être ensuite restauré au retour de la requête.). L'objectif est de remplacer l'approche « je traite la requête HTTP et je renvoie une page HTML » par « j'envoie des composants (boutons, champs de texte, etc..) et je réagis aux actions de l'utilisateur ».
Les pages JSF sont par default des Facelets ( Apache). On peut encore JSP ou des pages XUL. (XML-based User interface Language (prononcé zoul) est un langage de description d’interfaces graphiques fondé sur XML) XUL facilite la mise au point d’une interface plus évoluée que HTML sur le plan technique. Une interface XUL peut récupérer d’un serveur les seules données nécessaires à la mise à jour d’un élément de la page et non l’ensemble de la page elle-même ; ces données peuvent être récupérées en XML et de manière asynchrone, ce qui permet d’utiliser la méthode AJAX en programmation XUL. Ces techniques permettent d’améliorer considérablement les temps de réponse et le confort de l’utilisateur. FacesServlet est la servlet qui gère tout cycle de traitement d'une requête
La première version des spécifications JSF est lancée par SUN le 11 Mars 2004 et définie dans la JSR 127. Après quelques corrections , la version 1.1 est sortie le 27 Mai 2004. La version 1.2 (Apache) sortie le 11 mai 2006 comprend un ensemble d'améliorations mineures à la spécification précédente. L'utilisation d'un schéma pour le fichier de configuration, à la place d'une DTD. Des améliorations pour pouvoir gérer plusieurs frames ou fenêtres d'une même application. Quelques corrections pour des bugs. JSF 2.0 est sortie en 28 juin 2009 en accompagnant la sortie Java EE 6 et en apportant les premières améliorations majeures en terme de productivité.
Un ensemble de phase exécutée l’une après l’autre design pattern Chain of responsibilities Quand une requête est envoyé au serveur , il crée l’arbre hiérarchique des composants de l’IU et chaque composant est associé à son validateur , à son gestionnaire d’évènement et eventuellement à un objet (model). Après le moteur JSF extrait les paramètres de la requête et les applique à leurs composants respectifs. On sauvegrade les valeurs des paramètres et on fait les conversions nécessiares. Ensuite on applique les validateurs et si tout va bien les valeurs des beans sont mises à jour. Après la synchronisation des models, on entre dans la phase Invoke application. La le moteur JSF gére les evenements , la navigation , la mise à jour de la base de données etc Ainsi l’arbre de composants de la prochaine page est construit et on entame la dernière phase qui est le rendu de la réponse
Max(1000) Définit jsr 303 View Scope donne au managed bean associé une durée de vie identique à celle de la vue
Plusieurs solutions JSF / Ajax sont disponibles (IceFaces,PrimeFaces) . Les différences subtiles entre ces solutions conduisent des problèmes de compatibilité cross-framework. Les créateurs de JSF WebApp n'ont pas accès aux fonctionnalités Ajax sans avoir besoin d'un tiers framework Api Ajax standard
1/facile de combiner des interfaces graphiques complexes en un seul composant gérable en JSF , Struts ne le fait pas 2/JSF ne se limite pas aux formats HTML et HTTP; Struts si 3/JSF vous permet d'attribuer des noms aux beans, puis vous référez à eux par leurs noms dans les formes. Struts a un processus complexe comportant plusieurs niveaux d'indirection où vous devez vous rappeler quelle forme est l'entrée pour quelle action. 4/Le langage d'expression JSF est plus concis et plus puissant que de Struts. 5/Le fichier faces-config.xml est beaucoup plus facile à utiliser que le fichier struts-config.xml. En général, JSF est plus simple.