はじめに
以前はWebアプリケーションのためのフレームワークといえば、MVCを基本とするアプリケーションフレームワークを示すものでした。しかし、ここ数年、増えてきているのが「プレゼンテーション層のためのフレームワーク」です。データベースアクセスは、HibernateをはじめとするO/Rマッパーなど使えるフレームワークが一通り揃っています。ならば、データベースアクセスはそうしたものに任せ、Javaによるアプリケーション開発でもっとも面倒なプレゼンテーションの部分に絞ったフレームワークでいい、ということなのかもしれません。
今回取り上げる「ZK」も、こうしたプレゼンテーション層のためのフレームワークです。ZKは、Webのビジュアルをいかに簡単な作業で効率よく作成するかに絞って設計されています。独自のタグライブラリにより、シンプルなタグを記述するだけでクールなGUIを構築できます。
しかし、単にGUIを作成するだけなら、jQueryなどのAjaxライブラリでも十分でしょう。ZKは、ただGUIを記述するだけでなく、それを利用した処理をそのままレイアウトページ内にスクリプトとして記述できます。これまでの「クライアント側とサーバ側」を分けて設計したWebアプリケーションの構築とはまったく異なり、一般的なスタンドアロンアプリケーションとほとんど同じ感覚でイベント駆動による処理を作成できます。
対象読者
- Javaで手ごろなフレームワークを探している技術者
- 最近のフレームワークをごくざっと理解しておきたい方
- Web開発の手法がどうも気に入らない、と常々考えているJavaプログラマ
ZKの入手
ZKは、Potix Corp.によって開発されているオープンソースのフレームワークです。現在、ZK - Direct RIAにて公開されています。ZKの利用には、まずサイトにアクセスし、右側にある[Download]というリンクからダウンロードページに移動してください。ダウンロードページには、ZKおよび各種のツールやエクステンション類がまとめられています。1番上にある「ZK」という項目だけあれば開発は可能です。
2010年7月現在、「5.0.3」というバージョンが最新版となっています。本書ではこれをベースに解説を行います。ZKのダウンロードページにある「zk-bin-5.0.3.zip」というファイルをダウンロードしてください。これがZKの本体となります。
ダウンロードしたZipファイルを展開すると、フォルダ内に「dist」「doc」という2つのフォルダが保存されているのが確認できます。doc内にはコピーライトやリリースノート、クイックスタートのドキュメントなどがまとめられています。distフォルダが、ZKの本体となります。このフォルダ内には、以下の4つのフォルダが保存されています。
- lib:ZKのライブラリです。ここに必要なJarファイル類がまとめられています。
- src:ZKのソースコードファイルをまとめたJarです。
- WEB-INF:TLDファイルがまとめられています。
- xsd:ZKに用意されているZKユーザーインターフェイスマークアップ言語(ZUML)のXSD(XMLスキーマ)です。
これらの内、実際に開発に必要となるのは「lib」フォルダだけです。それ以外のものは、特に使いません。
Webアプリケーションを作成する
では、実際にZKを利用したWebアプリケーションを作成してみましょう。ZKには、Eclipseを利用した専用の開発ツールも用意されていますが、簡単な作業でWebアプリケーションを開発することも可能になっています。ここでは、一から作成してみることにしましょう。
Webアプリケーションは、通常いくつかのフォルダとファイルから構成されています。もっともシンプルなWebアプリケーション「zksample」を作成してみましょう。サーブレットコンテナの公開ディレクトリ内に、ざっと次のようなフォルダ構成を用意してください。
「zksample」フォルダ └「WEB-INF」フォルダ ├「classes」フォルダ └「lib」フォルダ
Webアプリケーションのごく基本的なフォルダ構成です。ルートとなる「zksample」フォルダ内に「WEB-INF」フォルダがおかれ、その中に「classes」「lib」といったフォルダが置かれる、という形です。ファイルは後から順に作成するので、まずはフォルダの構成だけ用意してください。
続いて、ZKのライブラリを組み込みます。先ほどZKの圧縮ファイルを展開したとき、dist内に「lib」フォルダが作成されました。このフォルダの中身を、すべてWEB-INF内の「lib」フォルダにコピーしてください。
なお、「lib」フォルダの中には、さらに「ext」「zkforge」といったフォルダが用意されていますが、これらはオプションとして用意されているライブラリ類です。これらも利用する場合は、フォルダ内から出して、直接「lib」フォルダ内に配置しておきます。「ext」「zkforge」フォルダの中においたままではライブラリをロードできないので注意してください。
今回、特に忘れてはならないのが「ext」内にある「bsh.jar」です。これはBeanShellというJavaのインタープリタです。今回、Javaのスクリプトを実行するのにこのライブラリが必要となるので、必ず「lib」内に入れておくようにしてください。