Controller in Struts

8

Was ist Controller in MVC?

Ist es struts.xml oder Servlet (Aktionsklasse)?

Können wir mehr als ein Controller in unserer Anwendung haben?

Ist es ratsam, mehr als einen Controller zu haben?

    
ajay 03.11.2009, 11:48
quelle

9 Antworten

15

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 .

>     
cetnar 03.11.2009 11:59
quelle
3

Der ActionServlet ist der Controller IMO.

In einem größeren Rahmen könnte der ActionServlet zusammen mit dem RequestProcessor und Action und die Initialisierungsinformation von struts-config.xml in einer struts App als Controller bezeichnet werden.

    
jitter 03.11.2009 11:51
quelle
3

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

implementiert

Die ActionServlet-Klasse Die RequestProcessor-Klasse Die Aktionsklasse

für weitere Informationen hierzu können Sie auf den folgenden Link gehen Ссылка

    
harry 03.12.2013 09:14
quelle
2

struts.xml ist der Controller. Sie können sich diese Struts 2-Architektur ansehen

    
Tigran Gularyan 11.07.2013 06:55
quelle
1

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:

Ссылка

    
Clarence 14.06.2012 11:38
quelle
0

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.

    
Paul 04.11.2009 10:34
quelle
0

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.

    
gprathour 14.12.2011 04:13
quelle
0

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

    
Suryaprakash Pisay 05.08.2013 05:56
quelle
0
  1. Die vordefinierte Servlet-Klasse ist der Controller, der verwendet structs-config.xml zum Verwalten oder Steuern Ihrer gesamten Anwendung.

  2. 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.

user2652879 23.09.2013 11:06
quelle