A Quick Struts 2 Intro

1. Introduksjon

Apache Struts 2 er et MVC-basert rammeverk for utvikling av Java-applikasjoner for bedrifter. Det er en fullstendig omskrivning av originale Struts-rammeverk. Den har en åpen kildekode API-implementering og et rikt funksjonssett.

I denne opplæringen vil vi ha en nybegynnerinnføring i forskjellige kjernekomponenter i Struts2-rammeverket. Videre vil vi vise hvordan du bruker dem.

2. Oversikt over Struts 2 Framework

Noen av Struts 2-funksjonene er:

  • POJO (vanlige gamle Java-objekter) -baserte handlinger
  • plugin-støtte for REST, AJAX, Hibernate, Spring, etc.
  • konvensjon over konfigurasjon
  • støtte for ulike visningslagsteknologier
  • enkel profilering og feilsøking

2.1. Ulike komponenter i stivere2

Struts2 er et MVC-basert rammeverk, så følgende tre komponenter vil være til stede i alle Struts2-applikasjoner:

  1. Handlingsklasse - som er en POJO-klasse (POJO betyr at den ikke er en del av noe typehierarki og kan brukes som en frittstående klasse); vi vil implementere vår forretningslogikk her
  2. Kontroller - i Struts2 brukes HTTP-filtre som kontrollere; de utfører i utgangspunktet oppgaver som å fange opp og validere forespørsler / svar
  3. Utsikt - brukes til å presentere behandlede data; det er vanligvis en JSP-fil

3. Designe søknaden vår

La oss fortsette med utviklingen av nettappen vår. Det er et program der en bruker velger et bestemt Bil merkevare og blir møtt av en tilpasset melding.

3.1. Maven avhengigheter

La oss legge til følgende oppføringer i 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 

Den siste versjonen av avhengighetene finner du her.

3.2. Forretningslogikk

La oss lage en actionklasse CarAction som returnerer en melding for en bestemt inngangsverdi. De CarAction har to felt - carName (brukes til å lagre inngangen fra brukeren) og carMessage (brukes til å lagre den tilpassede meldingen som skal vises):

offentlig klasse CarAction {private String carName; privat String carMessage; private CarMessageService carMessageService = nye CarMessageService (); public String execute () {this.setCarMessage (this.carMessageService.getMessage (carName)); returnere "suksess"; } // getters og setters}

De CarAction klasse bruker CarMessageService som gir den tilpassede meldingen for en Bil merke:

offentlig klasse CarMessageService {public String getMessage (String carName) {if (carName.equalsIgnoreCase ("ferrari")) {return "Ferrari Fan!"; } annet hvis (carName.equalsIgnoreCase ("bmw")) {return "BMW Fan!"; } ellers {return "velg ferrari eller bmw"; }}}

3.3. Godta brukerinngang

La oss legge til en JSP som er et inngangspunkt i søknaden vår. Dette er et innhold i input.jsp fil:

Velkommen til Baeldung Struts 2-appen

Hvilken bil liker du !!

Velg ferrari eller bmw

<skjema> tag spesifiserer handlingen (i vårt tilfelle er det en HTTP URI som GET-forespørsel må sendes til).

3.4. Kontroller-delen

StrutsPrepareAndExecuteFilter er kontrolleren, som vil avskjære alle innkommende forespørsler. Vi må registrere følgende filter i web.xml:

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

StrutsPrepareAndExecuteFilter vil filtrere hver innkommende forespørsel når vi spesifiserer URL-matching som jokertegn /*

3.5. Konfigurere applikasjonen

La oss legge til følgende merknader i actionklassen vår Bil:

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

La oss forstå logikken i denne kommentarene. De @Navneplass brukes til logisk separasjon av URI for forespørsel for forskjellige handlingsklasser; vi må inkludere denne verdien i vår forespørsel.

Videre er den @Handling forteller det faktiske sluttpunktet for URI-forespørselen som vil treffe vår Handling klasse. Handlingsklassen konsulterer CarMessageService og initialiserer verdien til en annen medlemsvariabel carMessage. Etter henrette() metoden returnerer en verdi, "suksess" i vårt tilfelle samsvarer det med den verdien å påberope resultat.jsp

Til slutt, @Resultat har to parametere. Den første, Navn, spesifiserer verdien som vår Handling klassen kommer tilbake; denne verdien returneres fra henrette() Metode av Handling klasse. Dette er standardmetodenavnet som skal kjøres.

Den andre delen, plassering, forteller hvilken fil det skal henvises til etter henrette() metoden har returnert en verdi. Her spesifiserer vi at når henrette() returnerer en streng med verdi “suksess“, Vi må videresende forespørselen til resultat.jsp.

Den samme konfigurasjonen kan oppnås ved å tilby XML-konfigurasjonsfil:

   /result.jsp 

3.6. Utsikten

Dette er innholdet i resultat.jsp som vil bli brukt til å presentere meldingen til brukeren:

Hei Baeldung-bruker

Du er en

Det er to viktige ting å legge merke til her:

  • i vi importerer struts-tags bibliotek
  • i vi bruker struts-tags bibliotek for å skrive ut verdien på en eiendom carMessage

4. Kjøre applikasjonen

Denne webappen kan kjøres i hvilken som helst webcontainer, for eksempel i Apache Tomcat. Dette er de nødvendige trinnene for å oppnå det:

  1. Etter at du har distribuert webappen, åpner du nettleseren og får tilgang til følgende URL: //www.localhost.com:8080/MyStrutsApp/input.jsp
  2. Velg ett av de to alternativene og send inn forespørselen
  3. Du vil bli videresendt til resultat.jsp side med tilpasset melding basert på det valgte inndatealternativet

5. Konklusjon

I denne opplæringen gikk vi gjennom en trinnvis guide, hvordan du lager vår første Struts2-webapplikasjon. Vi dekket forskjellige MVC-relaterte aspekter i Struts2-domenet og viste hvordan vi kan sette dem sammen for utvikling.

Som alltid kan denne veiledningen finnes på Github som et Maven-prosjekt.