Ein Quick Struts 2 Intro

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:

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

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


    

Welcome to example Struts 2 app

Which car do you like !!

Please choose ferrari or bmw

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>/ *

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:

  1. Ö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

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