Ein kurzes Struts 2 Intro
1. Einführung
Apache Struts 2 ist ein MVC-basiertes Framework für die Entwicklung von Java-Webanwendungen für Unternehmen. Es ist eine vollständige Überarbeitung des ursprünglichen Struts-Frameworks. Es verfügt über eine Open-Source-API-Implementierung und einen umfangreichen Funktionsumfang.
In this tutorial, we will have a beginner’s introduction to different core components of the Struts2 framework. Außerdem zeigen wir, wie man sie benutzt.
2. Übersicht über Struts 2 Framework
Einige der Funktionen von Struts 2 sind:
-
POJO-basierte Aktionen (Plain Old Java Objects)
-
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:
-
Action class – 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
-
Controller – In Struts2 werden HTTP-Filter als Controller verwendet. Sie führen im Wesentlichen Aufgaben wie das Abfangen und Validieren von Anforderungen / Antworten aus
-
View – wird zur Darstellung 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 bestimmteCar-Marke auswählt und von einer benutzerdefinierten Nachricht begrüßt wird.
3.1. Maven-Abhängigkeiten
Fügen wir denpom.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 inhere.
3.2. Geschäftslogik
Erstellen wir eine AktionsklasseCarAction, die eine Nachricht für einen bestimmten Eingabewert zurückgibt. CarAction hat zwei Felder -carName (zum Speichern der Benutzereingaben) undcarMessage (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 KlasseCarActionverwendetCarMessageService, die die angepasste Nachricht für die MarkeCarbereitstellt:
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 einJSP hinzu, das ein Einstiegspunkt in unsere Anwendung ist. Dies ist ein Inhalt derinput.jsp-Datei:
Das Tag <form> 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 inweb.xml: registrieren
struts2
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
struts2
/*
StrutsPrepareAndExecuteFilter filtert jede eingehende Anfrage, während wir einen URL-passenden Platzhalter angeben.<url-pattern>/ ull-pattern> *
3.5. Anwendung konfigurieren
Fügen wir unserer AktionsklasseCar folgende Anmerkungen hinzu:
@Namespace("/tutorial")
@Action("/car")
@Result(name = "success", location = "/result.jsp")
Lassen Sie uns die Logik dieser Anmerkungen verstehen. Das@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 gibt@Action den tatsächlichen Endpunkt des Anforderungs-URI an, der unsereAction-Klasse trifft. Die Aktionsklasse konsultiertCarMessageService und initialisiert den Wert einer anderen MitgliedsvariablencarMessage. Nachdem die Methodeexecute() einen Wert zurückgegeben hat, in unserem Fall“success”, stimmt sie mit diesem Wert überein, umresult.jsp aufzurufen
Schließlich hat@Result zwei Parameter. Als erstes gibtname, den Wert an, den unsereAction-Klasse zurückgibt. Dieser Wert wird von derexecute()-Methode derAction-Klasse zurückgegeben. This is the default method name which will be executed.
Der zweite Teil,location,, gibt an, auf welche Datei verwiesen werden soll, nachdem dieexecute()-Methode einen Wert zurückgegeben hat. Hier geben wir an, dass wir die Anforderung anresult.jsp weiterleiten müssen, wennexecute() einen String mit dem Wert „success“ zurückgibt.
Dieselbe Konfiguration kann durch die Bereitstellung einer XML-Konfigurationsdatei erreicht werden:
/result.jsp
3.6. Die Aussicht
Dies ist der Inhalt vonresult.jsp, der zum Präsentieren der Nachricht für den Benutzer verwendet wird:
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
Hello example User
You are a
Hier sind zwei wichtige Dinge zu beachten:
-
In<@taglib prefix=”s” uri=”/struts-tags %> importieren wir die Bibliothek vonstruts-tags
-
In<s:property value=”carMessage”/> verwenden wir die Bibliothekstruts-tags, um den Wert einer EigenschaftcarMessage zu drucken
4. Ausführen der Anwendung
Diese Web-App kann in jedem Web-Container ausgeführt werden, beispielsweise in Apache Tomcat. Dies sind die erforderlichen Schritte, um dies zu erreichen:
-
Öffnen Sie nach der Bereitstellung der Webanwendung den Browser und greifen Sie auf die folgende URL zu:http://www.localhost.com:8080/MyStrutsApp/input.jsp
-
Wählen Sie eine der beiden Optionen und senden Sie die Anfrage
-
Sie werden mit einer benutzerdefinierten Nachricht basierend auf der ausgewählten Eingabeoption zur Seiteresult.jspweitergeleitet
5. Fazit
In diesem Tutorial haben wir Schritt für Schritt erklärt, wie unsere erste Struts2-Webanwendung erstellt wird. 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 kann dieses Tutorialover on Github als Maven-Projekt gefunden werden.