HelloWorld
ちょっと間が空いてしまいましたが、今日はHelloWorldを表示してみます。
本家サイトにチュートリアルがあったので、これを参考に。
http://wicket.sourceforge.net/ExampleHelloWorld.html
インストール
まずはEcliseでプロジェクトの準備。
特筆することは何もないですが、こんな感じです。
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>
ここまでは順調。
わかりやすいし、いい感じ。