52 votes

Struts ou Spring MVC ou Struts Et Spring?

J'ai besoin de quelques informations pour comprendre la conception de la décision:

Est Entretoises un meilleur choix que celui de Spring MVC? J'ai entendu parler de Strus-Printemps-Hibernae combo Est les jambes de force à la MVC couche parce que son mûri cadre que, comparativement à Spring MVC?

Tout utilisé cette combinaison pour des projets ou conscient des problèmes?

33voto

bpapa Points 10188

Spring MVC 2.5 ou supérieure à l'aide de l'Annotation à base de contrôleurs est le chemin à parcourir.

De mon expérience, les gens d'utiliser le Printemps-Struts combo sont des magasins qui connaissent déjà les jambes et ne veulent pas investir du temps dans l'apprentissage de comment Spring MVC œuvres.

20voto

Nick Holt Points 12945

Aller avec Spring MVC (vous êtes probablement en utilisant le Printemps déjà) et JSTL pour ajouter des données à la page.

Ma plainte dernière fois que j'ai utilisé Struts (il y a quelques temps et je pense qu'il y a une ré-écriture qui peut avoir abordé ce) a été vous avez eu à utiliser la forme des objets pour tous vos paramètres de la requête. C'était très bien quand on a un formulaire simple avec des paramètres connus, mais une fois que vous avez obtenu dans des tables avec des quantités variables de données et les cases de chaque ligne, vous deviez utiliser quelque chose (si ma mémoire est bonne) appelé dyna-formes, qui ont été une douleur dans le*se...

Spring MVC, d'autre part, donne à votre contrôleur des objets de la requête HTTP et la réponse directement, vous donnant le pouvoir de nommer les paramètres répond à votre besoin.

16voto

Gareth Davis Points 16190

Pour mon argent, Spring MVC est le chemin à parcourir.

Cela dit il n'y a pas vraiment de nouveau chose de mal avec struts 2 (struts 1 est certainement un peu siècle dernier) je viens d'aller sur le principe que vous avez sans doute déjà le printemps configuré dans votre application (qui n'est pas de nos jours?) alors, pourquoi introduire un autre ensemble de concepts et de problèmes d'intégration.

Spring MVC est merveilleusement cru, à son niveau le plus bas de l' Controller interface n'a qu'une seule méthode HttpServletRequest et HttpServletResponse que c'est des paramètres, et il est meilleur d'elle-même complexe de liaisons et de validation.

Si vous ajoutez Webflow sur le dessus à nouveau vous est vraiment un très complète de la pile.

16voto

user274115 Points 177

Si vous avez déjà utilisé Struts2 correctement, vous sauriez que:

  1. il est vraiment juste Web Fonctionne (le résultat final d'un louable effort pour "fixer" la h-ou-r-i-b-le Struts1 API).
  2. il a DI, les Intercepteurs.
  3. c'est l'API est en fait plus efficace que celle de Spring MVC.

Par exemple, le Ressort ThrowawayController (notamment dans un tout autre objet de la hiérarchie de Printemps les autres Contrôleurs) est presque aussi simple que d'une Struts2 norme de l'Action. Les deux ont un sans paramètre execute() méthode - Struts2 retourne un "transparent" String, tandis que le Printemps du Contrôleur retourne une ModelAndView (qui n'est certainement pas "transparent").

En passant, quelqu'un peut-il expliquer (personne ne s'en soucie) que les paramètres pour un ModelAndView() sont bass ackwards, ordonnant à la vue de l'objet précéder le modèle?

Dans Struts2, vous obtenez un puissant (basée sur des normes ouvertes) langue appelée OGNL, quelque chose qui s'appelle un ValueStack, et les Intercepteurs. Ces sont remarquables parce qu'ils ont, dans l'ensemble, d'en permettre la "convention over configuration", et de faire Struts2 supérieure à Spring MVC.

Autre chose à propos de Printemps rankles: le "découplage" qui se passe dans des objets Java lors de l'utilisation de Ressort d'ailleurs le cas - problème, c'est que les objets sont toujours interdépendants, au lieu de cela maintenant le interdenendency est exprimé en XML (et une recompilation est nécessaire si les mappages XML changer)! Vous pouvez également utiliser instrumentation du bytecode (via le conteneur) pour accomplir la "magie". Et vraiment, si dépendante de la classe A a un setter pour la classe B, peut-il vraiment être dit qu'il ne connaît pas (une dépendance) de la classe B? Être honnête.

8voto

Jack Leow Points 11081

J'ai utilisé les deux, et si vous avez la possibilité, je vous recommande de Spring MVC.

Pour vous donner un peu de fond si, mon projet actuel est de Struts 1.2.9 modifiés pour l'injection de dépendance, et intégré avec le Printemps 2.5.6.

Cependant, la seule raison pour cela est parce que ce projet date d'avant le Printemps et nous sommes incapables de port tout de Printemps en ce moment, et voudrais au moins être en mesure d'utiliser l'injection de dépendance dans le back-end. Nos amortisseurs d'action deviennent peu à peu obsolètes, et j'espère que nous allons avoir complètement monté nous-mêmes de toutes les Entretoises dans les 6 à 8 semaines.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X