In Struts ist der Code / die Funktionalität der Anwendungsebene des Controller-Layers in zwei Teile aufgeteilt:
ActionServlet
mit RequestHandler
Action
classes ActionServlet
verhält sich wie FrontController-Muster .
alt text http://onjava.com/onjava/2005/11/02/graphics /figure3.gif
Bild von diesem OnJava-Artikel .
>Der Controller ist verantwortlich für das Abfangen und Übersetzen von Benutzereingaben in Aktionen, die vom Modell ausgeführt werden. Der Controller ist verantwortlich für die Auswahl der nächsten Ansicht basierend auf Benutzereingaben und dem Ergebnis von Modelloperationen. Der Controller empfängt die Anforderung vom Browser, ruft eine Geschäftsoperation auf und koordiniert die Ansicht, die an den Client zurückgegeben werden soll.
Immer wenn die Anfrage für eine Ressource kommt, geht es zuerst zum Controller. In einfachen Worten können wir sagen, dass der Controller ein Navigator ist. Und es ist seine Aufgabe, die entsprechende Aktionsklasse für die eingehende Anfrage zu finden und sie an diese bestimmte Aktion zu übergeben. Oder im technischen Wort können wir sagen, dass es die Zuordnung durchführt.
Der Controller wird von einem Java-Servlet implementiert. Dieses Servlet ist ein zentraler Kontrollpunkt für die Webanwendung. Im struts-Framework werden die Controller-Verantwortlichkeiten durch verschiedene Komponenten wie
implementiertDie ActionServlet-Klasse Die RequestProcessor-Klasse Die Aktionsklasse
für weitere Informationen hierzu können Sie auf den folgenden Link gehen Ссылка
struts.xml ist der Controller. Sie können sich diese Struts 2-Architektur ansehen
Ein Struts-basierter Controller ist ein "component"
, der aus vielen Teilen besteht. Custom Action classes
werden von Anwendungsentwicklern geschrieben. Struts ActionServlet
wird vom Framework bereitgestellt. Eine struts-config.xml
Konfigurationsdatei wird von Anwendungsentwicklern geschrieben. Der Code, der diese Datei liest und Aktion * * Objekte erstellt, wird vom Framework bereitgestellt. Alle diese Elemente zusammen sind "Controller"
Weitere Informationen zum Struts-Aktionspaket finden Sie in den folgenden API-Dokumenten:
Die struts Action-Klasse ist effektiv der Controller, da sie bestimmt, was als nächstes in der Verarbeitung der Anfrage (vom Browser) passieren soll. Die Action-Klasse verfügt über eine execute-Methode, die die Controller-Logik enthält. Die Action-Klasse ist ein gutes Beispiel für die Verwendung von Befehlsmustern .
Die Datei struts-config.xml enthält die Routing-Informationen, die bestimmen, an welchen Controller (Aktionsklasse) die Anfrage weitergeleitet wird. Es empfiehlt sich, mehr als einen Controller zu verwenden. Als Faustregel gilt, dass Sie pro Ansicht über einen Controller verfügen. Dies ist jedoch keine strikte Regel und Sie können mehr als einen Controller pro Ansicht verwenden, wenn die Ansicht komplex ist und unterschiedliche Funktionen aufweist die Trennung von Bedenken innerhalb der Kontrolleure.
Achten Sie außerdem darauf, Ihre Controller-Klassen nicht mit Geschäftslogik zu belasten. Dies führt zu einer Duplizierung von Code innerhalb von Controllern, wenn der Code für die Business-Klassen in der Model-Ebene Ihrer MVC-Anwendung ausgeklammert werden sollte.
Wie Sie sicher wissen werden, steht MVC
für Model - View - Controller.
Einfach gesagt, Modell enthält unsere Geschäftskomponenten und Logik, View enthält unsere Präsentationstechnologie und Controller steuert den Ablauf der Kontrolle und Arbeit der Anwendung.
In Struts
Es gibt zwei Versionen von Struts: Struts 1
und Struts 2
.
** Diese beiden sind unterschiedliche Frameworks.
Struts 1 basiert auf Servlets. Es hat eine ActionServlet
, die als Controller fungiert.
Während wir in Struts 2 Filter haben. In diesem können wir filtern wie FilterDispatcher
oder StrutsPrepareAndExecuteFilter
, die als unser Controller fungiert.
** In Struts 2 fungieren Aktionen als Modell.
Die Hauptaufgabe des Controllers besteht darin, zu entscheiden, welche Aktionsklasse welche Anfrage bearbeiten soll. Und der Controller tut dies mit Hilfe der von uns in der Datei struts.xml definierten Konfiguration oder bei Struts 2 durch Anmerkungen.
Da wir wissen, ob wir MVC verwenden, muss es einen Frontend-Controller geben, den wir in web.xml deklarieren sollten. In Struts2 sind zwei Filter verfügbar.
Front-End-Controller
1) org.apache.struts2.dispatcher.FilterDispatcher 2) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
Und dieser Front-End-Controller ist verantwortlich für das Laden der struts.xml-Datei
In struts.xml wird jedes Formular Name Attribute behandelt. Nachdem die Operation abgeschlossen ist, kehrt der Controller zu der Seite zurück, die weitergeleitet werden soll. (Wiederum wird dieser Vorgang vom Front-End-Controller übernommen.)
Hoffe es hilft
Die vordefinierte Servlet-Klasse ist der Controller, der verwendet structs-config.xml zum Verwalten oder Steuern Ihrer gesamten Anwendung.
Nein, Sie können nicht mehr als einen Controller in Ihren Streben haben Anwendung ist es nur gegen die MVC-Regel (die Sie nicht mehr haben können als ein Servlet in Ihrer App) Struts ist auf MVC basiert.
Tags und Links java model-view-controller design-patterns java-ee struts