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/

Przykłady używania Apache Wicket

http://wicket.apache.org/examples.html

Osobiste