Velocity は、Javaベースのテンプレートエンジンです。
ソースコード、HTML、レポートの生成や、他のシステムと組み合わせて
テンプレートサービスを提供するスタンドアローンユーティリティとして
使用することが出来ます。
Velocityは、Turbine
Webアプリケーション・フレームワークと緊密に統合されています。
Velocity-Turbineは、Webアプリケーションを真のMVCモデルに従って
開発をすることができるテンプレートサービスを提供します。
Velocity は、その利用に関して無数の可能性があります。
テンプレートから、SQLやPostScriptやJavaソースコードを生成したりできます。
しかし、現実に使用可能な
PHP や
Java
Server Pages (JSPs) の替わりを探しているWeb開発者は、
ユーザグループの本質となります。
Velocityは、単純であるが、強力なスクリプト要素を彼らのWebページに埋め込むことを
Webページ・デザイナーに与えます。
これらのスクリプト要素は、Javaコードにおいて定義されるコンテキスト・オブジェクトと関連して動作します。
コンテキスト・オブジェクト--本質的に、コンテキストの範囲内で名前によるオブジェクトの設定と取り出しをするたのget, setメソッドを提供するhashtableで--JavaコードからVelocityスクリプトに対して「フック」を提供します。
これらのスクリプト要素は、オブジェクトをコンテキストから取り出して、テキスト値としてこれらをWebページに挿入するためにWebデザイナーを許します。
Webデザイナーは、ループ(各々のために)で条件つきのステートメント(if/else)に対するいくらかの制御ができます。
Velocityは、JavaコードをHTMLテンプレート・コードから切り離すことによって
モデル・ビュー・コントローラ(MVC)スタイルの開発を強化します。
JSPと違って、Velocityはページに埋め込みJavaコードを許しません。
PHPと違って、Velocityは他の関数で機能を実装しません。
MVC方法は、Velocityの素晴らしい強さのうちのひとつで、
より保守しやすく、よりよくデザインされたWebページとなります。
MVC方式の開発は時には、特に関係している開発者がMVCに不慣れならば、
Webサイトのためにより長い実験期間が必要になるかもしれないが、
この方法は、長い目で見れば、時間を節約することなります(我々を信じて欲しい。
我々は、これを長期間、扱ってたのだから)。
MVCによる抽象化は、Webページ・デザイナーがソフトウェア・エンジニアの
Javaコードを混乱させることを防ぎ、
プログラマが過度にWebサイトの見た目に影響することを防ぎます。
Velocityは、Webサイト開発での人々の役割を明確に定義します。
Velocity は、
抽象文法ツリーを生成するためにJJTree拡張を利用した
JavaCC (Java Compiler
Compiler) によって生成された文法ベースのパーサを使用します。
Velocityの設計コンセプトは、
WebMacroから取り入れています。
Velocityプロジェクトに関係しているそれらは、
WebMacroプロジェクトに開発と設計にかかわった方々に感謝をいたします。