Newsletter

Grupa MagazynyInternetowe

Online: 896

Wyszukiwarka

JAVA, Framework

Framework Wicket

Framework Wicket Nadszedł czas, aby poznać młodszego brata Tapestry, frameworka dla Javy. Wicket, bo o nim mowa, również wywodzi się spod skrzydeł fundacji Apache. Wicket proponuje podobne podejście do budowania serwisów internetowych do tego znanego z Tapestry, lecz... całe zadanie czyni jeszcze prostszym!

Marcin Staniszczak

Co więcej, o ile Tapestry wciąż pozostaje frameworkiem mało popularnym, o tyle Wicket zdobywa coraz większą rzeszę zwolenników. Czas na to, abyś i ty mógł się z nim zapoznać.

Zanim rozpoczniesz pracę z nowym frameworkiem, zadbaj o przygotowanie odpowiedniego środowiska. Potrzebne będą:

  • skonfigurowane środowisko JDK - zakładam, że już dawno je posiadasz,
  • Maven - mimo że da się bez niego obyć, znacznie ułatwia pracę nad projektem, więc będziemy z tych dobrodziejstw korzystali.

Do naszych testów nie będzie potrzebny kontener servletów, taki jak np. Tomcat. A to za sprawą użycia archetypu do mavena, który pozwala na uruchomienie projektu za pomocą wbudowanego kontenera Jetty.

Jeśli masz zainstalowanego Mavena, nie musisz nawet pamiętać o pobraniu frameworka z jego strony domowej (http://wicket.apache.org). Możemy zaczynać.

Zaczynamy

Pierwszy przykład to kultowe już Witaj Świecie. Utwórzmy więc nowy projekt, korzystając z Mavena. Na stronie http://wicket.apache.org/quick.... html znajdziesz formularz ułatwiający generowanie polecenia tworzącego odpowiednią strukturę katalogów. Polecenie, którego użyjemy do zbudowania naszego programu Hello World, wygląda następująco:

[+]
 
 
Pobierz
1. mvn archetype:create
2. -DarchetypeGroupId=org.apache.wicket
3. -DarchetypeArtifactId=wicket-archetypequickstart
4. -DarchetypeVersion=1.3.1
5. -DgroupId=pl.staniszczak
6. -DartifactId=HelloWorld

W linii poleceń przejdź do katalogu, w którym chcesz utworzyć nowy projekt, wpisz powyższe polecenie i uruchom je. Po zakończeniu działania (rysunek 1) utworzony zostanie katalog projektu wraz z całym drzewem niezbędnych katalogów i plików.

Rys 1. Tworzenie nowego projektu za pomocą mavena Rys 1. Tworzenie nowego projektu za pomocą mavena

Pamiętaj że pierwsze uruchomienie powyższego polecenia może wykonywać się stosunkowo długo, gdyż powoduje pobranie dużej ilości plików z internetu. Na rysunku 2 pokazano drzewo katalogów naszego projektu. W poszczególnych katalogach projektu będziemy umieszczali:

Rys 3. Budowanie projektu za pomocą mavena Rys 3. Budowanie projektu za pomocą mavena
  • /src/main/java/pl/staniszczak - klasy i strony naszej aplikacji (o tym za chwilkę),
  • /src/main/webapp/WEB-INF - konfiguracja, w naszym wypadku plik web.xml.

I to tyle. O resztę - biblioteki i inne niezbędne pliki - zadba maven podczas budowania projektu. Na co więc czekamy? Napiszmy kod naszej pierwszej aplikacji.

Będzie się ona składała z jednej strony o nazwie HelloWorld. Przejdź do katalogu /src/main/java/pl/staniszczak i usuń z niego wszystkie pliki - nie będą one nam potrzebne. Utwórz teraz w nim nową stronę internetową w pliku HelloWorld. html:

[+]
 
HTML
Pobierz
1. <html>
2. <head>
3. <title>Witaj świecie</title>
4. </head>
5. Witaj Świecie
6. </html>

Gdy skończysz, utwórz klasę strony - Hello- World.java. We frameworku Wicket każdej stronie HTML odpowiada klasa Javy, która musi ma taką samą nazwę (patrz nazwy plików) i znajdować się w tym samym katalogu (pakiecie)

[+]
 
Java
Pobierz
1. package pl.staniszczak;
2. import org.apache.wicket.markup.html.WebPage;
3. public class HelloWorld extends WebPage {
4. }

W naszym pierwszym przykładzie wyświetlamy jedynie w przeglądarce napis Witaj Świecie. Nasza klasa nie robi zatem nic więc - musi jedynie dziedziczyć po klasie WebPage. Każda strona w Wicket dziedziczy po klasie WebPage.

Utwórzmy jeszcze główną klasę aplikacji:

[+]
 
Java
Pobierz
1. package pl.staniszczak;
2. import org.apache.wicket.protocol.http.WebApplication;
3. public class HelloWorldApplication extends WebApplication {
4.   public Class getHomePage() {
5.     return HelloWorld.class;
6.   }
7. }

Klasa aplikacji musi dziedziczyć po klasie WebApplication oraz dostarczać implementacji abstrakcyjnej metody getHelloPage(). Metoda ta wskazuje na klasę będącą główną stroną aplikacji. W naszym wypadku jest to klasa HelloWorld. Pozostało jeszcze zadbać o konfigurację aplikacji. W katalogu /src/main/webapp/WEB-INF znajduje się plik web.xml:

[+]
 
XML
Pobierz
 1. <?xml version="1.0" encoding="ISO-8859-1"?>
 2. <web-app
    xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSche
    ma-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"version="2.4">
 3.   <display-name>HelloWorld</display-name>
 4.   <filter>
 5.     <filter-name>wicket.HelloWorld</filtername>
 6.     <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
 7.     <init-param>
 8.       <param-name>applicationClassName</param-name>
 9.       <param-value>pl.staniszczak.HelloWorldApplication</param-value>
10.     </init-param>
11.   </filter>
12.   <filter-mapping>
13.     <filter-name>wicket.HelloWorld</filtername>
14.     <url-pattern>/*</url-pattern>
15.   </filter-mapping>
16. </web-app>

Tutaj należy w bloku filter -> filter-param w parametrze applicationClassName ustawić klasę naszej aplikacji, czyli HelloWorldAppliaction, podając ją wraz z pakietem, w którym się ona znajduje. I to wszytko. Teraz w linii poleceń przejdź do katalogu projektu, a więc do katalogu HelloWorld.

Będąc w nim, wydaj polecenie (zanim to zrobisz, usuń wszystkie pliki z katalogu /src/test/java/pl/staniszczak - zawiera on pliki testów aplikacji, jednak nie jest to tematem tego artykułu - pamiętaj o ich usunięciu także w przypadku naszego kolejnego projektu) widoczne na rysunku 3:

Rys 3. Budowanie projektu za pomocą mavena Rys 3. Budowanie projektu za pomocą mavena
 
 
 
Pobierz
mvn clean install

Tak jak poprzednio, pierwsze wykonanie tego polecenia może trwać dość długo. Pozostało już tylko uruchomić Jetty i sprawdzić, jak wygląda nasze dzieło w przeglądarce. W linii poleceń wpisz:

 
 
 
Pobierz
mvn jetty:run

Gdy Jetty zostanie uruchomiony (rysunek 4), w przeglądarce wczytaj stronę http://localhost:8080/HelloWorld/ - efekt widoczny jest na rysunku 5.

Rys 4. Uruchomienie kontenera servletów Jetty Rys 4. Uruchomienie kontenera servletów Jetty
21 listopada 2008

Powiązane publikacje

Tapestry: framework JSP od drugiej strony

Tapestry: framework JSP od drugiej strony

 
Skomentuj
ten artykuł

Brak komentarzy

Kod obrazkowy
(Kliknij, aby zmienić)
 

Autor

Marcin Staniszczak

Artykuły tego autora:

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.