6. Velocimacro2006.01.05 株式会社四次元データ 里見玲爾
Velocity 6章 Velocimacro
この章では、Velocimacroについて解説します。 6.1. VelocimacroとはVelocimacro(VMとも呼ばれる)とはVelocityで定義できるマクロのことで、 マクロとは特定の操作手順をプログラムとして記述して自動化することです。 よく使う処理をマクロとして保存しておけば、 マクロを呼び出すことで簡単にその処理を行えるようになります。 テンプレートで使用できるVelocimacroには、 設定ファイルのほうから読み込んだVelocimacroと、 テンプレートのvmファイル内(インラインと呼ぶ)で定義されたVelocimacroの2種類があります。 設定にもよりますが、設定ファイルのほうから読み込んだVelocimacroはすべてのテンプレートファイルで使用可能ですが、 インラインで定義されたVelocimacroはその定義されたテンプレートファイル内でしか認識されないため、 他のテンプレートファイルでは使用できません。 設定ファイルから参照する場合には、 設定ファイル内のvelocimacro.libraryの部分にVelocimacroを定義したvmファイルのパスを指定します。 通常このときのvmファイルは、マクロの定義のみのファイル(テンプレートライブラリ、Velocimacroライブラリなどとも呼ばれる)とします。 一方、インラインでVelocimacroを定義する場合には、使用するvmファイル内でVelocimacroを定義するだけです。 次の節ではvmファイルでVelocimacroを定義する方法を解説します。 6.2. Velocimacroの定義Velocimacroを定義するには、vmファイル内に#macro指示子を使って次のような形で記述します。 #macro( vmname $arg1, $arg2, ..) [ VTLコード.. ] #end
vmnameはVelocimacroを利用する際の名前で、$arg1、$arg2,..の部分は引数を表しています。
引数は複数指定可能ですが、実際呼び出す際の引数と一致する必要があります。
[ VTLコード.. ]にはVelocimacroとして認識させる処理(VTLやテキストなど)を記述します。
またVelocimacroの定義の()の中には、#で始まるVTL指示子は使えません。 #vmname($arg1, $arg2, ..) では実際にVelocimacroを定義してみましょう。 例
#macro(easyMacro $group)
#foreach($human in $group)
velocityCount : $human.name
#end
#end
この例では4章の#foreachであげた例のように、 groupに格納されている人(Human)オブジェクトの名前(name)を列挙するようなVelocimacroを、 easyMacroとして定義しています。 このeasyMacroを呼び出すには以下のように記述します。 #easyMacro($groupA) 6.3. Velocimacroの設定設定ファイルの設定によって、Velocimacroの扱いを変更することができます。主に設定できる内容は以下のようなものです。
設定ファイルで設定できる他の内容については、10章「Velocityの設定キー」で詳しく解説します。 |
![]()
![]()
|