La spécification JSF est la plus récente des technologies couvertes dans cet article. Son annonce officielle remonte à mars 2004. A première vue, JSF se présente comme un concurrent de Struts. Et c’est curieux parce que l’un des leaders de la cospécification de JSF, Craig McClanahan, fur à l’origine de
JavaServer Faces
Struts. Mais tandis que Struts est un cadre d’application Web, JSF est un cadre UI. Struts gère le flux d’une application depuis la page Web jusqu’à la logique de gestion ; JSF a été conçu pour traiter la portion UI d’une application. D’où le chevauchement entre Struts et JSF. Mais les fonctions UI de JSF dominent celles de Struts. N’en déduisez pas que vous ne pouvez pas utiliser à la fois Struts et JSF. En fait, Jakarta a en chantier un projet appelé Struts-Faces qui vise la fusion de ces deux technologies.
(Craig McClanahan est actuellement architecte au Sun Java Studio Creator – un concurrent de WDSc. Vous pouvez lire les commentaires de Craig sur JSF et Struts à blogs.sun.com/roller/page/craigmcc/20040927).
Comme JSTL et Struts, JSF a un ensemble de tags HTML. Mais JSF est bien plus qu’un simple ensemble de bibliothèques de tags. JSF a été conçu pour fournir des fonctions semblables au modèle piloté par événement des applications Windows. Tous les tags JSF ont des composantes UI correspondantes (comme des boîtes de texte, des boîtes de listes, des panneaux à onglets, et des grilles de données) auxquelles vous pouvez associer (ou lier, pour utiliser le terme JSF) des data beans et des processus de gestion frontaux. Le jeu de composants UI JSF est facilement extensible pour que vous puissiez obtenir un comportement d’UI personnalisé. L’architecture par composantes permet aux fournisseurs d’IDE de créer des outils WYSIWYG du type glisser/déposer semblables aux outils RAD (Rapid Application Development) de l’époque VisualBasic, PowerBuilder et Delphi.
Tout comme Struts, JSF a des fonctions de validation. Mais le code de validation JSF se trouve là où il doit être : dans le JSP, avec les tags validateurs. JSF est livré avec trois validateurs standard :
- "< f :validatedoublerange>"
- "< f:validatelength> "
- "< f:validatelongrange>"
Mais il est aussi très facile d’écrire vos propres validateurs (vous trouverez aussi des validateurs personnalisés sur le Web). A l’instar de Struts, les messages d’erreur de validation sont codés dans des fichiers de propriétés et affichés avec des tags JSP.
Un sujet majeur du développement Struts était le coding du processus de présentation/validation/réaffichage. En fait, un ouvrage bien connu, Jakarta Pitfalls: Time-Saving Solutions for Struts Ant, JUnit and Cactus (John Wiley & Sons, 2003) consacre la plupart de ses chapitres à fournir des solutions aux problèmes de développement de Struts. Quoiqu’il en soit, JSF ne connaît aucun de ces problèmes. Des data beans sont associés aux composantes d’entrées par une fonction appelée value binding. (La figure 4 utilise value binding dans un champ de sortie.) Pendant le traitement JSF de la sortie sur formulaire, les valeurs data bean passent par des composantes appelées renderers, qui formatent les données sous forme de dates, monétaire, numérique simple ou autre. Pendant le traitement JSF de l’entrée sur formulaire, les valeurs liées passent par des composantes appelées converters, qui reformatent les données dans leur format data bean d’origine (String, Date, BifDecimal, par exemple). Là encore, vous pouvez créer facilement vos propres renderers et converters.
La configuration de JSF (qui est aussi semblable à celle de Struts) est codée dans un fichier XML et traitée par un contrôleur de servlets. Mais JSF introduit une fonction sophistiquée appelée managed beans. Les managed beans sont des JavaBeans maintenus par le contrôleur JSF. Ces beans font en principe deux choses : ils enveloppent les données affichées dans le HTML, et fournissent des méthodes pour traiter les données d’entrée par formulaire. Une méthode d’un managed bean peut être liée à une composante d’entrée JSF par la propriété action :
(Notons que JSF a un EL qui est semblable à JSTL. Le code JSF EL est facile à distinguer de JSTL EL parce que les expressions sont précédées d’un signe livre au lieu d’un signe dollar.)
Pour développer et déployer des applications JSF, il faut un serveur d’applications qui supporte JSP 1.2 et Servlet 2.3, et il faut aussi une implémentation de la spécification JSF. Actuellement il existe trois implémentations : l’implémentation de référence de Sun (à java.sun.com/j2ee/javaserverfaces), l’implémentation MyFaces open-source (myfaces. org) et celle d’IBM. A noter que l’implémentation d’IBM est intégrée dans WebSphere 5.1 mais que rien ne vous empêche d’utiliser l’implémentation Sun ou MyFaces avec WebSphere 5.0 (ou 5.1). Je dois cependant indiquer que le jeu d’outils visuels JSF WDSc peut utiliser des fonctions non disponibles dans l’implémentation Sun ou MyFaces.
Pour en savoir plus sur JSF, consultez les sources dans l’encadré Ressources JSF. Mais il est aussi très facile d’écrire vos propres validateurs (vous trouverez aussi des validateurs personnalisés sur le Web).
Téléchargez cette ressource
SIEM & PME : Comment construire la boîte noire de votre SI ?
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et accessible, pour anticiper, détecter et réagir efficacement aux attaques.
Les articles les plus consultés
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Activer la mise en veille prolongée dans Windows 10
- Cybersécurité Active Directory et les attaques de nouvelle génération
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Une baie de stockage c’est quoi ?
Les plus consultés sur iTPro.fr
- Souveraineté des données : bâtir un stockage hybride adapté à l’ère de l’IA
- Secteur public : l’IA accélère la modernisation des infrastructures
- De l’inventaire à l’action : l’Asset Management au service d’un Numérique plus responsable
- IA et bureaucratie : la complexité qui grève les projets
Articles les + lus
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
À la une de la chaîne Tech
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
