Grupa MagazynyInternetowe
Online: 896
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ą:
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ć.
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:
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
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
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:
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)
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:
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:
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
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:
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
Powiązane publikacje
Brak komentarzy
Artykuły tego autora:
Frameworki upraszczające pisanie kodu powstały dla wielu języków programowania. Najsłynniejsze z nich to chociażby Ruby on Rails, Zend Framework czy Django. Okazuje się, że własne frameworki stworzyli również koderzy HTML i CSS. Upraszczają pracę i pozwalają wyeliminować wiele żmudnych czynności, od których zwykle rozpoczynamy tworzenie nowego projektu.
Polecamy:
Na skróty:
Magazyny Internetowe| Co za ile| Programy| Praca| Magazyn Internet| Internet Maker| Web Toster| ForumNasze serwisy: