A Quick Struts 2 Intro

1. Einleitung

Apache Struts 2 ist ein MVC-basiertes Framework für die Entwicklung von Java-Webanwendungen für Unternehmen. Es ist eine vollständige Neufassung des ursprünglichen Struts-Frameworks. Es verfügt über eine Open Source-API-Implementierung und einen umfangreichen Funktionsumfang.

In diesem Tutorial erhalten wir eine Einführung für Anfänger in verschiedene Kernkomponenten des Struts2-Frameworks. Darüber hinaus werden wir zeigen, wie man sie benutzt.

2. Übersicht über Struts 2 Framework

Einige der Funktionen von Struts 2 sind:

  • POJO-basierte Aktionen (einfache alte Java-Objekte)
  • Plugin-Unterstützung für REST, AJAX, Hibernate, Spring usw.
  • Konvention über Konfiguration
  • Unterstützung verschiedener View-Layer-Technologien
  • Einfache Profilerstellung und Fehlerbehebung

2.1. Verschiedene Komponenten von Struts2

Struts2 ist ein MVC-basiertes Framework, sodass die folgenden drei Komponenten in allen Struts2-Anwendungen vorhanden sind:

  1. Aktionsklasse - Dies ist eine POJO-Klasse (POJO bedeutet, dass es nicht Teil einer Typhierarchie ist und als eigenständige Klasse verwendet werden kann). Wir werden unsere Geschäftslogik hier implementieren
  2. Controller - In Struts2 werden HTTP-Filter als Controller verwendet. Sie führen im Wesentlichen Aufgaben wie das Abfangen und Validieren von Anforderungen / Antworten aus
  3. Ansicht - wird zum Präsentieren verarbeiteter Daten verwendet. Es ist normalerweise eine JSP-Datei

3. Gestaltung unserer Anwendung

Fahren wir mit der Entwicklung unserer Web-App fort. Es ist eine Anwendung, bei der ein Benutzer eine bestimmte Automarke auswählt und von einer benutzerdefinierten Nachricht begrüßt wird.

3.1. Maven-Abhängigkeiten

Fügen wir der pom.xml folgende Einträge hinzu :

 org.apache.struts struts2-core 2.5.10   org.apache.struts struts2-junit-plugin 2.5.10   org.apache.struts struts2-convention-plugin 2.5.10 

Die neueste Version der Abhängigkeiten finden Sie hier.

3.2. Geschäftslogik

Erstellen wir eine Aktionsklasse CarAction, die eine Nachricht für einen bestimmten Eingabewert zurückgibt. Die CarAction verfügt über zwei Felder: carName (zum Speichern der Benutzereingaben) und carMessage (zum Speichern der anzuzeigenden benutzerdefinierten Nachricht):

public class CarAction { private String carName; private String carMessage; private CarMessageService carMessageService = new CarMessageService(); public String execute() { this.setCarMessage(this.carMessageService.getMessage(carName)); return "success"; } // getters and setters }

Die CarAction Klasse verwendet CarMessageService , die die individuelle Nachricht für eine bietet Automarke:

public class CarMessageService { public String getMessage(String carName) { if (carName.equalsIgnoreCase("ferrari")){ return "Ferrari Fan!"; } else if (carName.equalsIgnoreCase("bmw")){ return "BMW Fan!"; } else { return "please choose ferrari Or bmw"; } } }

3.3. Benutzereingaben akzeptieren

Fügen wir eine JSP hinzu, die ein Einstiegspunkt in unsere Anwendung ist. Dies ist ein Inhalt der Datei input.jsp :

Welcome to Baeldung Struts 2 app

Which car do you like !!

Please choose ferrari or bmw

Das < form > -Tag gibt die Aktion an (in unserem Fall handelt es sich um einen HTTP-URI, an den eine GET-Anforderung gesendet werden muss).

3.4. Der Controller-Teil

StrutsPrepareAndExecuteFilter ist der Controller, der alle eingehenden Anforderungen abfängt. Wir müssen den folgenden Filter in der web.xml registrieren :

 struts2 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter   struts2 /* 

StrutsPrepareAndExecuteFilter filtert jede eingehende Anfrage, während wir einen URL-passenden Platzhalter / * angeben

3.5. Anwendung konfigurieren

Fügen wir unserer Aktionsklasse Auto folgende Anmerkungen hinzu :

@Namespace("/tutorial") @Action("/car") @Result(name = "success", location = "/result.jsp")

Lassen Sie uns die Logik dieser Anmerkungen verstehen. Der @ Namespace wird zur logischen Trennung des Anforderungs-URI für verschiedene Aktionsklassen verwendet. Wir müssen diesen Wert in unsere Anfrage aufnehmen.

Darüber hinaus teilt die @Action den tatsächlichen Endpunkt des Anforderungs-URI mit, der unsere Action- Klasse treffen wird . Die Aktionsklasse konsultiert CarMessageService und initialisiert den Wert einer anderen Mitgliedsvariablen carMessage . Nachdem die Methode execute () einen Wert zurückgegeben hat, in unserem Fall "success" , stimmt sie mit diesem Wert überein , um result.jsp aufzurufen

Schließlich hat das @ Ergebnis zwei Parameter. Der erste Name gibt den Wert an, den unsere Action- Klasse zurückgibt. Dieser Wert wird von der Methode execute () der Action- Klasse zurückgegeben. Dies ist der Standardmethodenname, der ausgeführt wird .

Der zweite Teil, location, gibt an , auf welche Datei verwiesen werden soll, nachdem die execute () -Methode einen Wert zurückgegeben hat. Hier geben wir an, dass wir, wenn execute () einen String mit dem Wert „ successzurückgibt, die Anforderung an result.jsp weiterleiten müssen .

Dieselbe Konfiguration kann durch Bereitstellung einer XML-Konfigurationsdatei erreicht werden:

   /result.jsp   

3.6. Die Aussicht

Dies ist der Inhalt von result.jsp , der zum Präsentieren der Nachricht für den Benutzer verwendet wird:

Hello Baeldung User

You are a

Hier sind zwei wichtige Dinge zu beachten:

  • imWir importieren eine Struts-Tags- Bibliothek
  • imWir verwenden die Struts -Tags- Bibliothek, um den Wert einer Eigenschaft carMessage zu drucken

4. Ausführen der Anwendung

Diese Web-App kann in jedem Webcontainer ausgeführt werden, beispielsweise in Apache Tomcat. Dies sind die erforderlichen Schritte, um dies zu erreichen:

  1. Öffnen Sie nach der Bereitstellung der Web-App den Browser und greifen Sie auf die folgende URL zu: //www.localhost.com:8080/MyStrutsApp/input.jsp
  2. Wählen Sie eine der beiden Optionen und senden Sie die Anfrage
  3. Sie werden mit einer benutzerdefinierten Nachricht basierend auf der ausgewählten Eingabeoption zur Seite result.jsp weitergeleitet

5. Schlussfolgerung

In diesem Tutorial haben wir Schritt für Schritt erklärt, wie Sie unsere erste Struts2-Webanwendung erstellen. Wir haben verschiedene MVC-bezogene Aspekte in der Struts2-Domäne behandelt und gezeigt, wie sie für die Entwicklung zusammengestellt werden können.

Wie immer ist dieses Tutorial auf Github als Maven-Projekt zu finden.