Velocity を使ってみよう(前編)
Velocity は Java のためのテンプレートエンジンです。「テンプレートエンジンって何ぞや ?」という方のために、わかりやすい例を挙げてみましょう。
みなさん、年賀状をソフトで作成するときのことを想像してください。住所録を作りますよね。それをソフトが用意しているテンプレートに当てはめることによって宛名印刷ができます。それをやってくれるツールがテンプレートエンジンです。
Velocity の入手
まぁ何はなくとも Velocity とやらを手に入れてこないと使えませんので、Apache Velocity Project のサイトからダウンロードします。当面は Engine だけあれば十分です。最新版は 1.7 です。
ダウンロードした zip ファイルの中に velocity-1.7/velocity-1.7-dep.jar*1 というファイルがありますので、これを適当なところに置いておきます。
Eclipse に Velocity UI をインストールする
Eclipse で Velocity を利用した開発を行う際に便利ですので導入しておきましょう。以下のサイトを Available Software Sites に登録します。
http://veloedit.sourceforge.net/updates/
後は [Help] → [Install New Software...] からサイトを選んでインストールするだけです。
後は Velocity を使いたいプロジェクトに先ほどの velocity-1.7-dep.jar を登録するだけで Velocity が使えます。
表示用 Bean の作成
さて、ソースコードの一つもなしに終わらせるわけにはいかないので、ここらへんでそろそろソースコードを。まずはテンプレートに差し込むデータ用の Bean を作成します。
package jp.mydns.akanekodou.bean; public class Product { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Web アプリケーションを作るときの Java Beans と同じ要領です。
テンプレートの作成
View に当たる部分と言えます。これは .vm ファイル(Velocity Macro)になります。プロジェクト内に template というフォルダを作成してそこに products.vm というファイル名で保存してください。
#foreach ($product in $list) $product.id : $product.name #end
今回は雰囲気をつかんでもらうために単純なものにしました。#foreach は vm ファイルで使えるループです。リストを受け取って、要素を一つずつ取り出します。$product には先ほど作成した Product クラスの要素が入っています*2ので .id や .name でプロパティを呼び出します。
後編でいよいよプログラムの本体を作ります。データベース(MySQL)と連携しますので JDBC ドライバの登録を忘れずに。