JavaServer Faces, la nouvelle carte de Sun.

#framework#java#jee#jsf

En orientant son choix sur une technologie de concepteurs visuels avec WebForms, Microsoft a pris de l’avance sur Sun dans le domaine de la gestion de composants graphiques. Mais c’était sans compter sur la contre-attaque de Sun avec son Framework JSF.

Après l’annonce en 2002 des spécifications des JSF par Sun, ce n’est qu’en 2004 qu’elles ont été acceptées. Considérées comme une technologie encore jeune et non encore définitivement finalisée, l’adoption n’a dans un premier temps pas été très large. Cependant, les récentes évolutions de Sun ont contribué au développement rapide des JSF, faisant qu’aujourd’hui de nombreux projets s’intéressent aux JSF même si peu d’outils sont encore disponibles pour répondre aux attentes des développeurs.

Présentation

La solution de Sun est basée sur un modèle évènementiel comme celui de Microsoft. Pourtant, JSF se différencie de son concurrent en implémentant, au même titre que Struts, le modèle de développement MVC (Modèle Vue Contrôleur).

JSF est un Framework pour la conception d’interfaces graphiques dans des applications Web. Basé sur les technologies JSP et servlets, il permet entre autre de relier automatiquement les évènements côté client aux événements côté serveur et d’y associer des contrôles sur les valeurs introduites par l’utilisateur. Son principal intérêt, outre le fait que cette technologie soit désormais un standard J2EE, réside dans l’adoption d’un modèle de programmation évènementiel permettant la réutilisation de composants graphiques en JSP.

Longtemps attendu par l’ensemble de la communauté, Sun a lancé un outil de développement évènementiel pour concevoir des interfaces graphiques en Java, Java Studio Creator. Il est présenté comme l’équivalent à Microsoft Visual Studio, et fournit une solution complète pour développer, déboguer et déployer des applications Java simplement en intégrant la technologie JSF.

Struts ou JSF, que choisir ?

Il ne faut pas voir de concurrence entre ces deux technologies, même si le fait d’implémenter tous deux le modèle MVC leur procure une certaine interopérabilité. Suivant les besoins spécifiques du projet, les deux peuvent être combinées car elles sont complémentaires. L’implémentation du contrôleur de JSF est basique. Elle est présente pour que JSF soit autonome. Celle de Struts est plus performante. En revanche, JSF propose un modèle de composants IHM beaucoup plus évolué que la taglib struts-html fournie par Struts.

Intérêts de JSF

JSF permet :

  • de séparer la partie « interface » de la partie « métier »
  • l’utilisation d’un modèle de développement évènementiel standardisé
  • la configuration de la navigation entre les pages
  • le mapping HTML/Objet
  • d’étendre les différents modèles et de créer ses propres composants
  • une liaison simple entre les actions côté client de l’utilisateur et le code Java correspondant côté serveur
  • la validation des données saisies

L’utilisation de la technologie Java Server Faces permet de totalement séparer la logique du code de la partie interface utilisateur. Les composants de l’interface définis dans Java Server Faces sont de plus personnalisés par rapport au périphérique de l’utilisateur.

Pour gérer la liaison entre les données et l’interface utilisateur, JSF utilise des beans, les beans managés et les « Backing bean ». Ils servent entre autre à la persistance des données.

Les beans de type « Backing bean » sont utilisés avec JSF pour encapsuler tout ou partie des composants qui composent une page et ainsi faciliter leur accès notamment lors des traitements. Ces beans sont particulièrement utiles durant des traitements réalisés lors de validations ou de traitements d’évènements car ils permettent un accès aux composants dont ils possèdent une référence.

Les beans managés sont gérés par le Framework JSF. Ils doivent être construits en suivant certaines règles. Un constructeur par défaut sans argument doit être présent ainsi que des méthodes « set » et « get » pour chaque attribut.

Points faibles

Le développement d’applications à l’aide des JSF est complexe, un développement sans outil dédié nécessitant en effet un travail considérable. Ceci est contradictoire avec le but principal des JSF, qui est de rendre le développement d’applications Web simple et rapide. C’est pourquoi il est nécessaire d’utiliser des outils spécifiques aux JSF.

Conclusion

L’engouement pour les JSF est en train de s’amplifier, notamment avec la participation d’acteurs majeurs dans le développement d’outils dédiés aux JSF. C’est le cas de Sun avec Java Studio Creator mais également d’Oracle qui participe à la création de plug-in JSF pour Eclipse et qui s’investie dans le projet MyFaces du groupe Apache. IBM, quant à lui, intègre les composants JSF dans son outil de développement RAD 6. D’autres outils sont également disponibles mais le retard pris par rapport à la plate-forme de Microsoft n’est pas encore comblé. Cependant, le développement des JSF s’accentue et promet des avancées qui risquent de faire descendre les WebForms de leur pied d’Estale.

Brice DOS SANTOS MALHADO