Unterschied zwischen Struts 1 und Struts 2?
Hatte ich mich schon mit struts 2, aber für die paar Gründe, ich bin shifting (zurück) zu Struts 1 . Ich würde gerne wissen, major diffrences zwischen Ihnen wie über programatic verfügbarkeiten und Allgemeinen fließt.
- Ich wünschte, Sie gehen durch die Verweise ollahero.com/2011/09/15/struts1-vs-struts2 java-samples.com/showtutorial.php?tutorialid=200
- Ich hoffe, der einzige Grund, Sie gehen zurück zu Struts 1 ist, weil Ihr Unternehmen Sie-es gibt keinen Weg, in denen es eine bevorzugte option aus einem technischen/Produktivität Standpunkt.
- Stimme mit Ihnen überein, da ich selbst sehen Grund zu gehen, für struts2 von struts1, aber nicht Umgekehrt.
- "Ich hatte bis jetzt Windows XP, aber für die paar Gründe, ich bin shifting (zurück) zu Windows 3.1. Ich würde gerne wissen, große Unterschiede zwischen Ihnen..."
- Ja,ich weiß, Struts 2 ist mächtiger als Struts 1, aber das Projekt habe ich in Struts 1. das ist, warum ich war gerade auf der Suche nach differences....@Steven Was ist das..???
- Ich fühle Sie. Ich bin jetzt gezwungen, mit zu arbeiten
Struts 1.x
2018, nur weil man eine Anwendung entwickelt und wurde von meiner Firma für viele Jahre die GrundlageStruts 1.2
. - gleiche Problem hier in 2019 ... macht mich verrückt, wirklich!!!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
In http://www.java-samples.com finden Sie eine schnelle und vollständige Antwort. In anderen Worten, wenn Sie können, vergessen Sie Streben, und verwenden Sie nur Struts2...
Dies ist die Vergleichstabelle aus der Programmierung-Tutorials-site, das oben erwähnt ist:
End-Of-Life-Struts 1-Version wurde im Dezember 2008 und ist die version 1.3.10. Sie können immer noch und es wird immer noch funktionieren, aber es gibt keine Unterstützung oder Weiterentwicklung. Sie sind auf Ihrem eigenen da.
Sehen wir uns die Komponenten und funktionalen Unterschiede zwischen struts 1.x und struts 2.x
Funktionale Unterschiede
Vergleich von Struts 1 und 2 von den Machern von Struts (Apache software foundation)
Vergleich von Struts 1 und Struts 2
Hier ist der Inhalt auf den oben genannten link, incase, wenn Sie sich entscheiden, um den link ändern oder entfernen Sie die Seite in der Zukunft.
Action-Klassen
Die Handlung erfordert, Klassen zu erweitern, eine abstrakte Basisklasse. Ein häufiges problem in Struts 1 ist die Programmierung abstrakte Klassen statt interfaces.
Maßnahmen zu implementieren, die eine Aktion Schnittstelle in Kombination mit anderen Schnittstellen zu ermöglichen optionale und kundenspezifische Dienstleistungen. Struts 2 stellt eine Grundlage ActionSupport Klasse zu implementieren Häufig verwendete Schnittstellen. Obgleich, das interface Action ist nicht erforderlich. Jede POJO-Objekt mit einer execute-Signatur verwendet werden kann, wie Struts 2-Aktion-Objekt.
Threading-Modell
Aktionen sind singletons und werden muss thread-sicher, da es nur eine Instanz einer Klasse, um alle Anforderungen für diese Aktion. Die singleton-Strategie legt Beschränkungen auf, was kann getan werden, mit Streben 1 Aktionen und erfordert zusätzliche Pflege zu entwickeln. Aktion Ressourcen müssen thread-sicher oder synchronisiert.
Action-Objekte werden instanziiert für jede Anfrage, so gibt es keine thread-Sicherheit Probleme. (In der Praxis, servlet Container generieren viele Wegwerf-Objekte pro Anfrage, und noch ein Objekt nicht auferlegen, eine Leistungseinbuße oder die Auswirkungen der garbage collection.)
Servlet Abhängigkeit
Aktionen Abhängigkeiten in der servlet-API seit der HttpServletRequest und HttpServletResponse übergeben wird an die execute-Methode auf, wenn eine Aktion aufgerufen wird.
Aktionen, die nicht gekoppelt sind an einen container. Am häufigsten wird die servlet-Kontexte sind vertreten, wie einfache Karten, so dass Aktionen, die isoliert getestet werden können. Struts 2 Actions können immer noch Zugriff auf die ursprünglichen request-und response, falls erforderlich. Aber auch andere architektonische Elemente zu reduzieren oder zu eliminieren die Notwendigkeit, Zugriff auf die HttpServetRequest oder HttpServletResponse direkt.
Testbarkeit
Eine große Hürde für die Prüfung Struts 1-Aktionen ist, dass die execute-Methode stellt die Servlet-API. Ein Drittanbieter-Erweiterung, Struts TestCase, bietet eine Reihe von mock-Objekt für Struts 1.
Unterstützt die Erstellung von verschiedenen Lebenszyklen auf einer per-Action-basis über Abfangjäger-Stacks. Benutzerdefinierte Pakete können erstellt werden und mit verschiedenen Aktionen verwendet, wie benötigt wird.
Struts 2 Actions, können geprüft werden durch die Instanziierung der Handlung, festlegen von Eigenschaften und aufrufen von Methoden. Dependency Injection Unterstützung macht auch das testen einfacher.
Ernte-Eingang
Nutzt ein ActionForm-Objekt capture-Eingang. Wie Aktionen, die alle ActionForms erstrecken muss eine Basis-Klasse.Da andere JavaBeans nicht verwendet werden ActionForms, die Entwickler erstellen oft redundante Klassen-capture-Eingang.
DynaBeans kann verwendet als eine alternative zum erstellen von konventionellen ActionForm-Klassen, aber auch hier sollte der Entwickler vielleicht redescribing vorhandenen JavaBeans.
Aktion Verwendet die Eigenschaften als Eingabe-Eigenschaften, wodurch die Notwendigkeit für einen zweiten Eingabe-Objekt.Eingabe-Eigenschaften können Reich Objekt-Typen, die haben Ihre eigenen Eigenschaften. Die Action-Eigenschaften zugegriffen werden kann von der web-Seite über die taglibs. Struts 2 unterstützt auch die ActionForm-Muster, sowie POJO-Objekte und POJO-Aktionen. Reichhaltiges Objekt-Typen, einschließlich Geschäfts-oder domain-Objekten,die verwendet werden können, die als input - /output-Objekte. Die ModelDriven-Funktion vereinfacht die taglb Verweise auf POJO input-Objekte.
Integriert mit JSTL, so verwendet er die JSTL, EL. Die EL hat basic object graph traversal, aber relativ schwach Sammlung und indiziert-Eigenschaft unterstützen.
verwenden Können, JSTL, aber der Rahmen unterstützt auch eine leistungsstarke und flexible Ausdruckssprache, genannt "Object-Graph Notation Language" (OGNL).
Nutzt die standard-JSP-Mechanismus für die Bindung an die Objekte in den page-Kontext für den Zugriff.
mit einer "ValueStack" - Technologie, so dass die taglibs können auf Werte zugreifen, ohne Kupplung Ihren Blick auf das Objekt-Typ es Rendern. Die ValueStack Strategie ermöglicht die Wiederverwendung von Ansichten über eine Reihe von Arten, die möglicherweise die gleiche Eigenschaft name, aber unterschiedliche Arten von Immobilien.
ActionForm Eigenschaften sind in der Regel alle Zeichenfolgen. Struts 1 nutzt Commons-Beanutils für Typ-Konvertierung. Wandler pro-Klasse, und nicht konfigurierbar pro Instanz.
OGNL Verwendet für die Konvertierung geben. Das framework umfasst Wandler für grundlegende und gemeinsame Objekt-Typen und primitiven.
Unterstützt die manuelle Validierung über eine validate-Methode der ActionForm, oder durch eine Erweiterung der Commons-Validator. Klassen können in verschiedenen Kontexten Validierung für die gleiche Klasse, aber nicht Kette, um Validierungen für sub-Objekte.
Unterstützt die manuelle überprüfung über die Validierung der Methode und der XWork Validation framework. Der Xwork Validation Framework unterstützt die Verkettung Validierung in der sub-Eigenschaften, die mit Validierungen definiert für die Eigenschaften der Klasse type und dem Validierungs-Kontext.
Unterstützt separate Anfrage-Prozessoren (Lebenszyklen) für jedes Modul, aber alle Aktionen, die in das Modul müssen den gleichen Lebenszyklus.
Unterstützt die Erstellung von verschiedenen Lebenszyklen auf einer per-Action-basis über Abfangjäger-Stacks. Benutzerdefinierte Pakete können erstellt werden und mit verschiedenen Aktionen verwendet, wie benötigt werden.
was sind die Gründe, die dich gezwungen, zurück zu gehen, struts1, die nicht mehr in aktiver Entwicklung?
werden können, manche kann man Ihnen hier helfen können bei der Lösung Ihrer Gründe hinsichtlich der Unterschiede gehen Sie durch den folgenden thread
Struts2 Vs Struts1
außerdem schlage ich vor Sie zu suchen, SO für mehr details. was ich weiß, Struts2-design und workflow ist vollständig anders als das, struts1, und es wurde entwickelt, genommen in account um auch die Grenzen struts1 haben.