Uvodnik brzih nosača 2

1. Uvod

Apache Struts 2 je MVC-ov okvir za razvoj korporativnih Java web aplikacija. To je cjelovito prepisivanje izvornog okvira Struts. Ima otvorenu implementaciju API-ja i bogat skup značajki.

U ovom uputstvu imat ćemo početničko upoznavanje s različitim temeljnim komponentama okvira Struts2. Štoviše, pokazat ćemo kako ih koristiti.

2. Pregled okvira Struts 2

Neke od značajki Struts 2 su:

  • Akcije temeljene na POJO (obični stari Java Objekti)
  • podrška za dodatke za REST, AJAX, Hibernate, Spring, itd
  • konvencija oko konfiguracije
  • podrška raznim tehnologijama sloja pogleda
  • jednostavnost profiliranja i uklanjanja pogrešaka

2.1. Različite komponente Struts2

Struts2 je okvir zasnovan na MVC-u, pa će sljedeće tri komponente biti prisutne u svim aplikacijama Struts2:

  1. Klasa akcije - koja je POJO klasa (POJO znači da nije dio nijedne hijerarhije tipova i može se koristiti kao samostalna klasa); ovdje ćemo implementirati svoju poslovnu logiku
  2. Kontroler - u Struts2, HTTP filtri se koriste kao kontroleri; oni u osnovi izvode zadatke poput presretanja i provjere valjanosti zahtjeva / odgovora
  3. Pogled - koristi se za predstavljanje obrađenih podataka; to je obično JSP datoteka

3. Dizajniranje naše aplikacije

Krenimo s razvojem naše web aplikacije. To je aplikacija u kojoj korisnik odabire određeno Automobil robne marke i dočekuje je prilagođena poruka.

3.1. Ovisnosti Mavena

Dodajmo sljedeće unose u 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 

Najnoviju verziju ovisnosti možete pronaći ovdje.

3.2. Poslovna logika

Stvorimo klasu akcije CarAction koji vraća poruku za određenu ulaznu vrijednost. The CarAction ima dva polja - autoName (koristi se za pohranu podataka od korisnika) i autoPoruka (koristi se za spremanje prilagođene poruke koja će se prikazati):

javna klasa CarAction {private String carName; private String carMessage; private CarMessageService carMessageService = novi CarMessageService (); javni niz execute () {this.setCarMessage (this.carMessageService.getMessage (carName)); povratak "uspjeh"; } // geteri i postavljači}

The CarAction razred koristi CarMessageService koji pruža prilagođenu poruku za Automobil marka:

javna klasa CarMessageService {public String getMessage (String carName) {if (carName.equalsIgnoreCase ("ferrari")) {return "Ferrari Fan!"; } else if (carName.equalsIgnoreCase ("bmw")) {return "BMW Fan!"; } else {return "molimo odaberite ferrari ili bmw"; }}}

3.3. Prihvaćanje korisničkog unosa

Dodajmo a JSP što je ulazna točka u našoj prijavi. Ovo je sadržaj input.jsp datoteka:

Dobrodošli u aplikaciju Baeldung Struts 2

Koji automobil volite !!

Odaberite ferrari ili bmw

The <oblik> označava radnju (u našem slučaju to je HTTP URI na koji se mora poslati GET zahtjev).

3.4. Dio upravljača

StrutsPrepareAndExecuteFilter je kontroler koji će presresti sve dolazne zahtjeve. Moramo registrirati sljedeći filtar u web.xml:

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

StrutsPrepareAndExecuteFilter filtrirat će svaki dolazni zahtjev jer specificiramo zamjenski URL koji se podudara /*

3.5. Konfiguriranje aplikacije

Dodajmo sljedeće bilješke u našu klasu akcije Automobil:

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

Razumijemo logiku ovih napomena. The @Prostor imena koristi se za logičko razdvajanje URI zahtjeva za različite klase radnji; moramo uključiti ovu vrijednost u naš zahtjev.

Nadalje, @Akcijski govori stvarnu krajnju točku URI-ja zahtjeva koji će pogoditi naš Akcijski razred. Klasa akcije savjetuje se CarMessageService i inicijalizira vrijednost druge varijable člana autoPoruka. Nakon izvršiti() metoda vraća vrijednost, "uspjeh" u našem se slučaju podudara s tom vrijednošću koju treba pozvati rezultat.jsp

Napokon, @Proizlaziti ima dva parametra. Prvi, Ime, određuje vrijednost koju naš Akcijski klasa će se vratiti; ova se vrijednost vraća iz izvršiti() metoda Akcijski razred. Ovo je zadani naziv metode koji će se izvršiti.

Drugi dio, mjesto, govori koja je datoteka na koju se poziva nakon izvršiti() metoda je vratila vrijednost. Ovdje preciziramo da kada izvršiti() vraća niz s vrijednošću "uspjeh“, Moramo proslijediti zahtjev na rezultat.jsp.

Ista konfiguracija može se postići pružanjem XML konfiguracijske datoteke:

   /result.jsp 

3.6. Pogled

Ovo je sadržaj rezultat.jsp koji će se koristiti za predstavljanje poruke korisniku:

Pozdrav korisniče Baeldung

Ti si

Ovdje treba uočiti dvije važne stvari:

  • u uvozimo šipke-tagovi knjižnica
  • u koristimo šipke-tagovi knjižnica za ispis vrijednosti svojstva autoPoruka

4. Pokretanje aplikacije

Ova se web aplikacija može pokrenuti u bilo kojem web spremniku, na primjer u Apache Tomcat. Ovo su potrebni koraci za njegovo postizanje:

  1. Nakon postavljanja web aplikacije otvorite preglednik i pristupite sljedećem URL-u: //www.localhost.com:8080/MyStrutsApp/input.jsp
  2. Odaberite jednu od dvije mogućnosti i pošaljite zahtjev
  3. Bit ćete preusmjereni na rezultat.jsp stranica s prilagođenom porukom na temelju odabrane mogućnosti unosa

5. Zaključak

U ovom uputstvu prošetali smo kroz vodič po koracima kako stvoriti našu prvu web aplikaciju Struts2. Obradili smo različite aspekte povezane s MVC-om u domeni Struts2 i pokazali kako ih sastaviti za razvoj.

Kao i uvijek, ovaj se vodič nalazi na Githubu kao Maven projekt.