Apache Wicket (12-14) 2008/2009
Z JASR Wiki
<<< Powrót do Tworzenie aplikacji wielowarstowych 2008/2009
Spis treści |
Wprowadzenie
Apache Wicket jest frameworkiem do tworzenia aplikacji internetowych opartym na komponentach. W odróżnieniu od poznanych wcześniej framework'ów (np. Seam), nie operujemy tutaj na "requestach" i "responsach", czyli generowaniu odpowiedzi HTTP. W Apache Wicket uwaga skupiona jest na komponentach, z których składa się strona. Każdy z nich ma zdefiniowany swój model (stan) oraz zachowanie. Można by rzec, że programowanie przypomina znane pewnie każdemu Delphi. Dzięki temu Apache Wicket jest bardziej intuicyjny, łatwiej rozszerzalny i zarządzalny od swoich konkurentów. Dodatkowym miłym zaskoczeniem jest mała ilość xmli, z którymi będziemy mieli do czynienia w trakcie pracy.
Instalacja w laboratorium
Szybki start w Eclipse:
1) Instalacja w Eclipse:
a) W katalogu workspace tworzymy nowy folder i nadajemy mu nazwę naszego projektu b) Ściągamy pliki Apache Wicket ze strony: http://sourceforge.net/project/showfiles.php?group_id=119783&package_id=166850 c) Rozpakowujemy ściągnięte pliki do katalogu utworzonego w workspace d) Uruchamiamy Eclipse i tworzymy nowy projekt -> Java Project e) Nadajemy mu nazwę utworzonego katalogu w workspace (powinna się wyświetlić informacja, że katalog nie jest pusty) f) Klikamy next i finish, zostawiając domyślne opcje
2) Aby sprawdzić czy działa:
a) Upewniamy się, że Eclipse nie zgłasza żadnych błędów b) Po prawej stronie, klikamy prawym klawiszem w src/main/java, Run As -> Java Application c) W przeglądarce wpisujemy adres: http://localhost:8081/quickstart
Szybki start w NetBeans:
1) Instalacja w NetBeans
a) W katalogu projektów NetBeans tworzymy nowy folder b) Ściągamy pliki Apache Wicket ze strony: http://sourceforge.net/project/showfiles.php?group_id=119783&package_id=166850 c) Rozpakowujemy ściągnięte pliki do katalogu projektu d) Uruchamiamy NetBeans i File -> New Project -> Web -> Web Application With Existing Sources e) Wybieramy folder z rozpakowanymi plikami Apache Wicket, a następnie next i finish
Uwaga! Standardowa instalacja wymaga programu Maven (http://maven.apache.org/), czyli menedżera budowania i kompilacji dla programów Java'owych. Jednak na potrzeby zajęć wystarczy "szybki start" opisany wyżej.
Jetty
Aplikacje tworzone przy użyciu Apache Wicket, mają wbudowany prosty serwer http o nazwie Jetty, działający domyślnie na porcie 8081. Można go skonfigurować edytując plik
src/main/resources/jetty-config.xml
Więcej informacji o Jetty można znaleźć na stronie głównej projektu: http://jetty.mortbay.org/jetty/
Hello World
Każda strona internetowa napisana przy użyciu Apache Wicket składa się z części HTML oraz Javy.
Plik HelloWorld.html może wyglądać tak:
<html>
<body>
<span wicket:id="message"></span>
</body>
</html>
Kod ten można rozumieć jako template, którego dynamiczna treść wypełniana będzie przez odpowiadające aplikacje Javy,
Plik HelloWorld.java:
package mypackage;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
public class HelloWorld extends WebPage
{
public HelloWorld()
{
add(new Label("message", "Hello World!"));
}
}
Plik HelloWorldApplication.java
package mypackage;
import org.apache.wicket.protocol.http.WebApplication;
public class HelloWorldApplication extends WebApplication
{
public Class getHomePage()
{
return HelloWorld.class;
}
}
Aby aplikacja działała poprawnie, musimy jeszcze poprawić plik web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<context-param>
<param-name>configuration</param-name>
<param-value>development</param-value>
</context-param>
<filter>
<filter-name>WebApplication</filter-name>
<filter-class>
org.apache.wicket.protocol.http.WicketFilter
</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>mypackage.HelloWorldApplication</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>WebApplication</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Ćwiczenie
Zmień program HelloWorld tak, aby można było wpisywać treść powitalnego komunikatu, który po wciśnięciu przycisku wyświetlałby się na stronie
Wskazówka
Rozwiązanie
Komponenty
Opis wszystkich komponentów wbudowanych w Apache Wicket: http://wicketstuff.org/wicket13/compref/
Dodatkowe komponenty napisane przez community: http://wicket.apache.org/docs/wicket-1.3.2/wicket-extensions/