« JSF-Struts Etat de l'Art | Page d'accueil | Comment sécuriser les services web? PAR I »

20/05/2005

Comparatif JSF/Struts

L’atout de Struts étant :

  • une bibliothèque de tags mature, robuste et complète.
  • Les formulaires de type DynaActionForm
  • La validation est extensible, elle peut être faite côté client ou côté serveur.
  • Gestion centralisée des exceptions
  • Décomposition de l’application en modules logiques
  • Partage de la session entre les différents modules
  • Possibilité d’intégration des stratégies de sécurité
  • Support de l’internationalisation
  • Introspection des objets relatifs aux formulaires

JSF est une spécification permettant de développer des interfaces graphiques améliorées pour des applications Web basées sur la plate-forme J2EE. Les JSF utilisent un modèle Orienté événement. Elle propose dans son implémentation des composants graphiques réutilisables capables de gérer les états et les événements. Les JSF proposent aussi une librairie de balises à insérer dans des pages JSP.

Cette section présente un comparatif entre les frameworks Struts et JSF. Ce comparatif est complémentaire aux retours sur le Benchmark des frameworks Web.
Struts JSF Commentaires
Maturité ++ -/+
  • Struts bénéficie d’un retour d’expérience positif de la part de ses utilisateurs et des entreprises qui maintiennent des applications en production. L’exemple le plus parlant concerne la console d’administration de WebSphere 5.
Flexibilité du contrôleur + ++
  • JSF peut avoir plusieurs gestionnaires d’événements au sein d’une seule page tandis que Struts ne peut déclencher qu’un seul événement par requête utilisateur.
Navigation + ++
  • JSF propose un dispositif de navigation plus flexible que celui de Struts en le découplant du code applicatif.
Extensibilité + ++
  • Struts est extensible via la classe RequestProcessor qui implémente les appels aux méthodes durant le cycle de vie d’une requête.
  • JSF dispose d’une fonctionnalité similaire, en plus il a l’avantage de découpler la phase de rendement du contrôleur, ce qui permet de un développement flexible de toolkits de rendu.
Développement + ++/-
  • Les JSFs facilite la combinaison des GUIs complexes au sein d’un seul composant.
  • JSF fait partie de la J2EE et bénéficie d’une spécification standard.
  • JSF est plus adaptée au Développement de type RAD.
  • Le développement basé sur JSF ne nécessite pas d’étendre des classes ou implémenter des interfaces spécifiques.
  • La configuration d’une application Struts est plus laborieuse qu’une application JSF.
  • Le module de validation de Struts est plus efficace et robuste que celui des JSFs.
  • Le module de validation de Struts peut se faire cote client, ce n’est pas le cas pour les JSFs.
Intégration + ++
  • JSF n’est pas limité à HTML et http mais aussi à d’autres technologies et protocoles

Les commentaires sont fermés.