メゲズにApache Wicket。
昨日のエントリに「Rails脳」というはてなスターを付けられてしまった。ガーン。
このままでは御先祖様に申し訳が立たないのでWicketに再チャレンジ。
必要なJavaライブラリをNetBeansにセット。
Wicket開発には、必要なライブラリが結構あるのねー。
- Apache Wicket 1.3.0 : 当然必要。
- Apache Velocity 1.5 : VelocityってWicketみたいなもんじゃなかったっけ・・・
- SLF4J 1.4.3 : なんと、知らない間に log4j が終わってこっちが主流らしい。もう浦島太郎・・・
ほかにも関連ライブラリがごちゃごちゃあるかもしれないが、調べるのが面倒なのでVelocityのlibに入っていたのをごっそりセット。
また配備を簡単にするために、プロジェクトプロパティーの「構築 - パッケージング」にも上記ライブラリをセット。
NetBeansで「Webアプリケーション」プロジェクトを作成。
プロジェクトの調整。
まず index.jsp はいらないので削除。
そして WEB-INF/web.xml を以下のように書き換え。
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> <display-name>Yotaropg Helloworld Wicket</display-name> <filter> <filter-name>YoratopgHelloWorldWicket</filter-name> <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class> <init-param> <param-name>applicationClassName</param-name> <param-value>jp.yotaropg.YotaropgHelloWorld.Application</param-value> </init-param> </filter> <filter-mapping> <filter-name>YoratopgHelloWorldWicket</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
Wicketのソースコードを書く。
- パッケージ jp.yotaropg.YotaropgHelloWorld を作成。
- このパッケージに、Javaクラス Application と HelloWorld を作成。
- おなじく、パッケージ内に HelloWorld.html を作成。
で、クラスとHTMLの中身を書いていく。
Application.java
package jp.yotaropg.YotaropgHelloWorld; import org.apache.wicket.protocol.http.WebApplication; public class Application extends WebApplication { public Application() { } public Class getHomePage() { return HelloWorld.class; } }
HelloWorld.java
package jp.yotaropg.YotaropgHelloWorld; 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!")); } }
HelloWorld.html
<html> <body> <span wicket:id="message" id="message">Message goes here</span> </body> </html>
NetBeans上で実行。
F6をぽちっとな。
するとビルド・配備・Tomcat起動・ブラウザ立ち上げ、まで一気に行われて。
無事に「Hello World!」と表示されました。
ばんざーい。もうRails脳とは言わせない。
感想。
実際に書いてみたら、けっこう快適。ルールを覚えてしまえばスラスラ書けるかも。
HelloWorldじゃページ間遷移がないから、そのあたりの扱いは気になる。またあとで調べよう。
Wicketって「Javaらしく書ける」がいいところだという。
ということは開発は「ページありき」ではなく「クラス/オブジェクトありき」ということなんだろうか。
だとしたら、
- Wicketクラスを書く。必要なUIのオブジェクトを add() でゴリゴリ追加する。
- HTMLファイルを書く。ここでオブジェクトのレイアウトを決める。
って感じなのかな。うーん。やっぱりJavaとHTMLの両方にUIクラスを書く、というのがひっかかる。
でも、Strutsよりは断然楽そう。すてき。