HelloWorld

ちょっと間が空いてしまいましたが、今日はHelloWorldを表示してみます。
本家サイトにチュートリアルがあったので、これを参考に。
http://wicket.sourceforge.net/ExampleHelloWorld.html

インストール

まずはEcliseでプロジェクトの準備。
特筆することは何もないですが、こんな感じです。

  • Tomcatプロジェクトを作成
  • wicket-1.1-rc1.jarをWEB-INF/libにコピーして、ビルドパスを通す

Applicationオブジェクトの作成

まずは、Applicationオブジェクトの作成です。
これがアプリの単位になるみたいですね。コンストラクタでホームページを指定しています。

import wicket.protocol.http.WebApplication;

public class HelloApplication extends WebApplication {
	public HelloApplication() {
		getPages().setHomePage(HelloWorld.class);
	}
}

Pageオブジェクトの作成

次はホームに設定したPageの作成です。Pageには画面に表示するための情報を保持する責務があるみたいです。ここでは"message"というキー名で、"こんにちは"という値をもつLabelコンポーネントを生成しています。

import wicket.markup.html.WebPage;
import wicket.markup.html.basic.Label;

public class HelloWorld extends WebPage {
	public HelloWorld() {
		add(new Label("message", "こんにちは"));
	}
}

HTMLの作成

Pageに対応したHTMLページの作成。先ほど作成したPageのLabelコンポーネントと、"message"というidで関連付けられているわけですね。
なるほど、なるほど。Tapestryっぽい。

<html>
<body>
    <span wicket:id="message">Message goes here</span>
</body>
</html>

web.xmlの作成

最後に、web.xmlの作成。チュートリアルページのものをコピペして、パッケージ名をちょい修正。/helloworldにリクエストがきたら、WicketServletにフォワードする、という至極単純な設定です。

<web-app>
  <servlet>
    <servlet-name>HelloWorldApplication</servlet-name>
    <servlet-class>wicket.protocol.http.WicketServlet</servlet-class>
    <init-param>
      <param-name>applicationClassName</param-name>
      <param-value>my.hello.HelloApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloWorldApplication</servlet-name>
    <url-pattern>/helloworld</url-pattern>
  </servlet-mapping>
</web-app>

これで完了。Tomcatを起動して実行すると・・・OKです。
出力されたHTMLは↓になりました。

<html>
<body>
    <span wicket:id="message">こんにちは</span>
</body>
</html>

ここまでは順調。
わかりやすいし、いい感じ。