Uvod u Wicket Framework

1. Pregled

Wicket je okvir usmjeren na web komponentu Java-ove usmjeren na poslužitelj koji ima za cilj pojednostavljivanje izgradnje web-sučelja uvođenjem uzoraka poznatih iz razvoja korisničkog sučelja radne površine.

S Wicketom je moguće izraditi web aplikaciju koristeći samo Java kôd i HTML stranice kompatibilne s XHTML-om. Nema potrebe za Javascriptom, niti XML konfiguracijskim datotekama.

Pruža sloj tijekom ciklusa zahtjeva i odgovora, štiteći od rada na niskoj razini i omogućavajući programerima da se usredotoče na poslovnu logiku.

U ovom ćemo članku predstaviti osnove izgradnjom HelloWorld Wicket aplikacija, nakon čega slijedi cjelovit primjer korištenja dvije ugrađene komponente koje međusobno komuniciraju.

2. Postavljanje

Da bismo pokrenuli Wicket projekt, dodajmo sljedeće ovisnosti:

 org.apache.wicket wicket-core 7.4.0 

Možda ćete htjeti provjeriti najnoviju verziju Wicket-a u spremištu Maven Central, koja se u vrijeme vašeg čitanja možda neće podudarati s onom koja se ovdje koristi.

Sada smo spremni za izradu naše prve Wicket aplikacije.

3. Pozdrav svijete Vratašca

Krenimo od podrazreda Wicket's WebApplication klase, koja u najmanju ruku zahtijeva nadjačavanje Predmet getHomePage () metoda.

Wicket će ovu klasu koristiti kao glavnu ulaznu točku aplikacije. Unutar metode jednostavno vratite a razred objekt klase nazvan Pozdrav svijete:

javna klasa HelloWorldApplication proširuje WebApplication {@Override javna klasa getHomePage () {return HelloWorld.class; }}

Wicket favorizira konvenciju u odnosu na konfiguraciju. Dodavanje nove web stranice u aplikaciju zahtijeva stvaranje dvije datoteke: Java datoteke i HTML datoteke s istim imenom (ali različitog nastavka) u istom direktoriju. Dodatna konfiguracija potrebna je samo ako želite promijeniti zadano ponašanje.

U direktorij paketa izvornog koda prvo dodajte HelloWorld.java:

javna klasa HelloWorld proširuje WebPage {public HelloWorld () {add (new Label ("hello", "Hello World!")); }}

zatim HelloWorld.html:

Kao posljednji korak dodajte definiciju filtra unutar datoteke web.xml:

 wicket.examples org.apache.wicket.protocol.http.WicketFilter applicationClassName com.baeldung.wicket.examples.HelloWorldApplication 

To je to. Upravo smo kodirali našu prvu Wicket web aplikaciju.

Izvedite projekt izradom a rat datoteka, (mvn paket iz naredbenog retka) i rasporedite ga na spremnik servleta kao što je Jetty ili Tomcat.

Pristupimo // localhost: 8080 / HelloWorld / u pregledniku. Prazna stranica s porukom Pozdrav svijete! pojavit će se.

4. Wicket komponente

Komponente u Wicketu su trijade koje se sastoje od Java klase, HTML oznake i modela. Modeli su fasada koju komponente koriste za pristup podacima.

Ova struktura omogućuje lijepo razdvajanje problema i razdvajanjem komponente od operacija usmjerenih na podatke, povećava ponovnu upotrebu koda.

Primjer koji slijedi pokazuje kako komponenti dodati ponašanje Ajaxa. Sastoji se od stranice s dva elementa: padajućim izbornikom i oznakom. Kada se promijeni padajući izbor, oznaka (i samo oznaka) bit će ažurirana.

Tijelo HTML datoteke CafeSelector.html bit će minimalan, sa samo dva elementa, padajućim izbornikom i oznakom:

Adresa: adresa

Na Java strani stvorimo oznaku:

Oznaka addressLabel = nova oznaka ("adresa", novi PropertyModel (this.address, "adresa")); addressLabel.setOutputMarkupId (true);

Prvi argument u Označiti konstruktor koji odgovara wicket: id dodijeljena u HTML datoteci. Drugi argument je model komponente, omot za osnovne podatke koji su predstavljeni u komponenti.

The setOutputMarkupId metoda čini komponentu prihvatljivom za izmjenu putem Ajaxa. Stvorimo sada padajući popis i dodajte mu ponašanje Ajaxa:

DropDownChoice cafeDropdown = novi DropDownChoice ("kafići", novi PropertyModel (ovaj, "selectedCafe"), cafeNames); cafeDropdown.add (new AjaxFormComponentUpdatingBehavior ("onchange") {@Preuzmi zaštićenu prazninu onUpdate (AjaxRequestTarget target) {String name = (String) cafeDropdown.getDefaultModel (). getObject (); address.setAddressAddressAddress (cafeNamesAddress (cafeNamesAdress) ()); target.add (addressLabel);}});

Stvaranje je slično naljepnici, konstruktor prihvaća ulazni list, model i popis naziva kafića.

Zatim AjaxFormComponentUpdatingBehavior dodaje se s onUpdate metoda povratnog poziva koja ažurira model naljepnice nakon izdavanja ajax zahtjeva. Napokon, komponenta naljepnice postavljena je kao cilj za osvježavanje.

Napokon, komponenta naljepnice postavljena je kao cilj za osvježavanje.

Kao što vidite, sve je Java, niti jedan redak Javascripta nije bio potreban. Da bismo promijenili ono što oznaka prikazuje, jednostavno smo izmijenili POJO. Mehanizam kojim se izmjena Java objekta prevodi u promjenu na web stranici događa se iza zavjesa i nije važan za programera.

Wicket nudi veliki set komponenata s omogućenim AJAX-om odmah. Katalog komponenata sa primjerima uživo dostupan je ovdje.

5. Zaključak

U ovom uvodnom članku pokrili smo osnove Wicket-a web-okvir zasnovan na komponentama u Javi.

Wicket pruža sloj apstrakcije kojem je cilj potpuno ukloniti vodovodni kôd.

Uključili smo dva jednostavna primjera koja se mogu naći na GitHubu kako bismo vam pružili uvid u to kako izgleda razvoj s ovim okvirom.