単純なプログラムを書換えよう(WebWork2編)−準備
WebWork2とは
WebWork2はウェブアプリケーションフレームワークである.この分野ではStrutsが定番といえるので,「Strutsみたいなことができる」と考えれば分かりやすいだろうか.詳細は参考文献や参考サイトを参照のこと.ぶっちゃけると,参考文献であげたWEB+DB PRESSで初めてWebWork2のことを知ったので,あんまり詳しいことはわからない.なお,前提とするバージョンは2.0である.
必要なソフトウェア
TomcatとJDKはインストールしよう.これらがないと話が進まない.インストール方法は省略する.今回使った環境は以下の通りである.
- Windows XP Professional Service Pack1
- Apache Tomcat 4.1.27/5.0.18
- JDK 1.4.1_02
ダウンロード
Java.Netからzipファイルをダウンロードするかcvs経由でソースファイルをダウンロードできる.
ソースファイルをダウンロードした場合は,Building WebWork2の内容に従ってコンパイルする.ダウンロードしたディレクトリが${HOME}/source/webworkである場合は
$ cd ${HOME}/source/webwork $ ant clean jar
となる.${HOME}/source/webwork/buildの下にwebwork-2.0.jarができる.ソースファイルをコンパイルして作ったwebwork-2.0.jarとダウンロードしたzipファイルの中にあるwebwork-2.0.jarのサイズが違っている.どちらでも問題なく動くので,とりあえず気にしない.
インストール
Tomcatの適当なディレクトリにjarファイルをコピーすることでWebWork2は使用可能となる.インストールから後述するweb.xmlの作成までは,WebWork2 QuickStart Guideが参考になる.
今回のプログラムを実行するために必要なjarファイルは以下の6個.
- webwork-2.0.jar
- xwork-1.0.jar
- ognl-2.6.3-modified.jar
- commons-logging.jar
- oscore-2.2.1.jar
- velocity-dep-1.3.1.jar
webwork-2.0.jar以外のjarファイルもダウンロードしたzipファイルやソースの中に入っている.zipファイルならlib/coreの中,ソースファイルなら${HOME}/source/webwork/lib/coreの中である.これら以外のjarファイルがlibディレクトリ配下にあっても問題はない.
Tomcatをインストールしたディレクトリ(以下${TOMCAT_HOME})配下にコピーする.今回は${TOMCAT_HOME}/webapps/counter/WEB-INF/lib/である.ちなみにWEB-INFより上のディレクトリ構成はTomcatの設定で変更できるが,そこまではやらない.
web.xmlの作成
TomcatからWebWork2を使えるようにweb.xmlを作成する.場所は${TOMCAT_HOME}/webapps/counter/WEB-INF/web.xmlである.web.xmlの説明はTomcatの本を参考にしたほうが早いだろう.ざっと説明するとこのような内容だ.
- webworkという名称が出たら,com.opensymphony.webwork.dispatcher.ServletDispatcherを実行する
- “.action”という文字列を含むURLにwebworkと名前をつける.上記の指定とあわせると“.action”という文字列を含むURLに対してcom.opensymphony.webwork.dispatcher.ServletDispatcherを実行する
- WebWork2のカスタムタグライブラリをwebworkという名前で使用
<?xml version="1.0" encoding="ISO-8859-1"?> <!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>WebWork Sample</display-name> <servlet> <servlet-name>webwork</servlet-name> <servlet-class>com.opensymphony.webwork.dispatcher.ServletDispatcher</servlet-class> </servlet> <servlet-mapping> <servlet-name>webwork</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> <taglib> <taglib-uri>webwork</taglib-uri> <taglib-location>/WEB-INF/lib/webwork-2.0.jar</taglib-location> </taglib> </web-app>
xwork.xmlの作成
WebWork2では画面の遷移等をxwork.xmlに記述する.記述方法は個々のプログラムの中で説明する.WebWork2なのにファイル名がxwork.xmlとなっている理由は,WebWork2の下にXWorkというフレームワークがあるためである.詳細は参考文献や参考サイトをあたった方がきっと確実だ.
ディレクトリ構成
このような構成になる.
${TOMCAT_HOME}/webapps/counter/WEB-INF/classes /lib/commons-logging.jar /ognl-2.6.3-modified.jar /oscore-2.2.1.jar /velocity-dep-1.3.1.jar /webwork-2.0.jar /xwork-1.0.jar /web.xml
参考文献
- WEB+DB PRESS Vol.16 p.32「WebWrok入門」
- WebWork2のことを知るきっかけ
- WEB+DB PRESS Vol.18 p.159 「WebWork2によるカンタンWebシステム構築」
- さらに詳しい説明
参考サイト
- OpenSymphony
- WebWorkの開発元.英語
- OpenSymphony Wiki
- OpenSymphonyの提供するコンポーネントに関するWiki.英語
- WebWork Users
- 日本語で読めるWebWorkの情報源.サンプルもあり助かった.
- はてなダイアリー−アガテナ−
- WebWorkの最新情報など