Een Quick Struts 2 Intro

1. Inleiding

Apache Struts 2 is een op MVC gebaseerd raamwerk voor het ontwikkelen van zakelijke Java-webapplicaties. Het is een complete herschrijving van het originele Struts-raamwerk. Het heeft een open source API-implementatie en een uitgebreide set functies.

In deze tutorial hebben we een introductie voor beginners over verschillende kerncomponenten van het Struts2-framework. Bovendien zullen we laten zien hoe u ze kunt gebruiken.

2. Overzicht van Struts 2 Framework

Enkele van de kenmerken van Struts 2 zijn:

  • Op POJO (gewone oude Java-objecten) gebaseerde acties
  • plug-in ondersteuning voor REST, AJAX, Hibernate, Spring, etc.
  • conventie over configuratie
  • ondersteuning van verschillende view-layer-technologieën
  • gemak van profilering en foutopsporing

2.1. Verschillende componenten van stutten 2

Struts2 is een op MVC gebaseerd framework, dus de volgende drie componenten zullen aanwezig zijn in alle Struts2-applicaties:

  1. Actieklasse - wat een POJO-klasse is (POJO betekent dat het geen deel uitmaakt van een typehiërarchie en kan worden gebruikt als een zelfstandige klasse); we zullen hier onze bedrijfslogica implementeren
  2. Verantwoordelijke - in Struts2 worden HTTP-filters gebruikt als controllers; ze voeren in feite taken uit zoals het onderscheppen en valideren van verzoeken / antwoorden
  3. Visie - wordt gebruikt voor het presenteren van verwerkte gegevens; het is meestal een JSP-bestand

3. Onze applicatie ontwerpen

Laten we doorgaan met de ontwikkeling van onze webapp. Het is een applicatie waarbij een gebruiker een bepaald item selecteert Auto merk en wordt begroet door een persoonlijk bericht.

3.1. Afhankelijkheden van Maven

Laten we de volgende items toevoegen aan het pom.xml:

 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 

De laatste versie van de afhankelijkheden is hier te vinden.

3.2. Bedrijfslogica

Laten we een actieklasse maken CarAction die een bericht retourneert voor een bepaalde invoerwaarde. De CarAction heeft twee velden - carName (gebruikt voor het opslaan van de invoer van de gebruiker) en carMessage (gebruikt voor het opslaan van het aangepaste bericht dat moet worden weergegeven):

openbare klasse CarAction {private String carName; privé String carMessage; privé CarMessageService carMessageService = nieuwe CarMessageService (); openbare String execute () {this.setCarMessage (this.carMessageService.getMessage (carName)); "succes" teruggeven; } // getters en setters}

De CarAction klasse gebruikt CarMessageService die het aangepaste bericht voor een Auto merk:

openbare klasse CarMessageService {openbare String getMessage (String carName) {if (carName.equalsIgnoreCase ("ferrari")) {return "Ferrari Fan!"; } else if (carName.equalsIgnoreCase ("bmw")) {return "BMW Fan!"; } anders {retourneer "kies alstublieft ferrari of BMW"; }}}

3.3. Gebruikersinvoer accepteren

Laten we een JSP dat is een toegangspunt in onze applicatie. Dit is een inhoud van de input.jsp het dossier:

Welkom bij Baeldung Struts 2 app

Welke auto vind je mooi !!

Kies a.u.b. ferrari of bmw

De <het formulier> tag specificeert de actie (in ons geval is het een HTTP URI waarnaar GET-verzoek moet worden verzonden).

3.4. Het Controller-gedeelte

StrutsPrepareAndExecuteFilter is de controller die alle inkomende verzoeken onderschept. We moeten het volgende filter registreren in het web.xml:

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

StrutsPrepareAndExecuteFilter filtert elk binnenkomend verzoek omdat we een jokerteken voor URL-overeenkomsten specificeren /*

3.5. De applicatie configureren

Laten we de volgende annotaties toevoegen aan onze actieklasse Auto:

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

Laten we de logica van deze annotaties begrijpen. De @Naamruimte wordt gebruikt voor logische scheiding van aanvraag-URI voor verschillende actieklassen; we moeten deze waarde in ons verzoek opnemen.

Bovendien is de @Actie vertelt het daadwerkelijke eindpunt van de verzoek-URI die onze raakt Actie klasse. De actieklasse overlegt CarMessageService en initialiseert de waarde van een andere lidvariabele carMessage. Na uitvoeren () methode retourneert een waarde, "succes" in ons geval komt het overeen met die waarde die moet worden aangeroepen resultaat.jsp

eindelijk, de @Resultaat heeft twee parameters. Eerste, naam, specificeert de waarde die onze Actie klasse zal terugkeren; deze waarde wordt geretourneerd door de uitvoeren () methode van Actie klasse. Dit is de standaard methode naam die zal worden uitgevoerd.

Het tweede gedeelte, plaats, vertelt welk bestand het is waarnaar moet worden verwezen na de uitvoeren () methode heeft een waarde geretourneerd. Hier specificeren we dat wanneer uitvoeren () geeft een String terug met waarde “succes“, We moeten het verzoek doorsturen naar resultaat.jsp.

Dezelfde configuratie kan worden bereikt door een XML-configuratiebestand op te geven:

   /result.jsp 

3.6. Het uitzicht

Dit is de inhoud van resultaat.jsp die zal worden gebruikt om het bericht aan de gebruiker te presenteren:

Hallo Baeldung-gebruiker

Je bent een

Er zijn hier twee belangrijke dingen om op te merken:

  • in wij importeren stutten-tags bibliotheek
  • in wij gebruiken stutten-tags bibliotheek om de waarde van een eigenschap af te drukken carMessage

4. Het uitvoeren van de applicatie

Deze web-app kan in elke webcontainer worden uitgevoerd, bijvoorbeeld in Apache Tomcat. Dit zijn de vereiste stappen om dit te bereiken:

  1. Open na het implementeren van de webapp de browser en open de volgende URL: //www.localhost.com:8080/MyStrutsApp/input.jsp
  2. Selecteer een van de twee opties en dien de aanvraag in
  3. U wordt doorgestuurd naar het resultaat.jsp pagina met aangepast bericht op basis van de geselecteerde invoeroptie

5. Conclusie

In deze tutorial hebben we een stapsgewijze handleiding doorlopen voor het maken van onze eerste Struts2-webapplicatie. We hebben verschillende MVC-gerelateerde aspecten in het Struts2-domein behandeld en laten zien hoe je ze samenstelt voor ontwikkeling.

Zoals altijd is deze tutorial te vinden op Github als een Maven-project.


$config[zx-auto] not found$config[zx-overlay] not found