Composants logiciels
JavaServer Faces Facile
JJLC
Introduction.
JavaServer Faces (JSF) est un framework JAVA, pour le développement d'applications Web. Le
projet de ce cadriciel (framework) a démarré en 2004. Il est dirigé par une communauté JAVA, un
Java Community Process1 (JCP). Ses spécifications sont consignées dans un document, un Java
Specification Requests (JSR).
Les versions de JSF sont spécifiées par les JSR suivants :
- JSF 1.0 : JSR 127 (2004),
- JSF 1.2 : JSR 252 (2006),
- JSF 2.02 : JSR 314 (2009),
- JSF 2.1 : JSR 314 (2010),
- JSF 2.2 : JSR 344 (2013),
chacune de ces versions a donné lieu à la production d'une implémentation de référence. La
première version a été réalisée par une communauté de développeurs au sein de l'entreprise Sun
Microsystem appelée JSF RI (JSF Reference Implementation). Puis à partir de la version JSF 1.2,
la communauté a changé de nom pour s'appeler Mojarra. Après le rachat de Sun Microsystem par
la société Oracle, la communauté Mojarra3 a gardé son nom.
C'est l'implémentation de référence Mojarra qui est utilisée sous la forme de librairies JAVA comme
première couche dans les applications réalisées avec JSF. Cette couche implémente les composants
de base du langage HTML sous la forme de composants graphiques (widget) JSF appelés
UIComponents. Ceux-ci permettent de décorer les pages WEB (Vues) et d'interagir avec des
composants JAVA appelés ManagedBean qui en représentent le Modèle. A ce titre JSF possède une
architecture MVC24.
Les composants graphiques possèdent un cycle de vie complexe qui leur permet d'évoluer dans un
système avec état (statefull). C'est à dire que l'état d'un composant graphique de type
UIComponent est enregistré lors du rendu (notion de renderer) de la page pour être ensuite restauré
au retour de la requête HTTP. A noter également que la version JSF 2.2 intègre la technologie
AJAX de façon native.
Cependant d'autres éditeurs fournissent des composants JSF de plus haut niveau. Comme par
exemple des systèmes de menu, de calendrier, de traitement de texte, de présentation multimédia,
d'adaptation au terminaux mobiles, etc.
1 Un JCP regroupe un certain nombre d'experts et les entreprises parties prenantes du projet
2 La version JSF 2.0 coïncide avec celle de la plateforme JAVA EE 6.
3 Communauté Mojarra : https://javaserverfaces.java.net/
4 MVC2 : méta-patron de conception MVC (Modèle, Vue, Contrôleur) adapté au WEB (mapping HTTP-Objet et
contrôleur unique)
1/7 Composants Logiciels JJLC