基本的なVTL

アイポの開発に携わるようになって初めて目にしたのがVTLです。 これらの意味が分かると、コードも読みやすくなると思うので、基本的なものを挙げていきます。

1. #set

#setは右辺の値を左辺に代入する指示子です。以下のように表記します。


#set( $value = "$value * 3") #set( $name = "Yojigen") #set( $name = 'Yojigen')

2. #if #elseif #else

#if、#elseif、#elseは条件分岐するための指示子です。それぞれ以下のように記述します。


#if( 条件 ) [ 出力 ] [ #elseif( 条件2 ) [ 出力2 ] ] ・・ [ #else [ 出力3 ] ] #end

3. #foreach

#foreachは繰り返し処理を行うための指示子です。 オブジェクトのリストを使ってループさせます。


#foreach( $object in $list) [ 出力 ] #end

4. #parse #include

#parse、#includeはテンプレートの中にローカルファイルをインポートするための指示子です。 この二つの違いは、インポートしたファイルをVelocityが解析するかどうかにあります。 #parseの場合、読み込まれたファイルがVTLを含むものであった場合には、Velocityがそれを解析します。 #includeの場合、読み込まれたファイルをテキストファイルとして利用するため、Velocityは解析しません。 #parseでインポートしたファイルの中で再び#parseによるインポートを行うことができ、またさらにその中でも可能です。 これをどれだけ深い階層までできるかは、 設定ファイルであるvelocity.propertiesファイル内のparse_directive.maxdepthによって保存されています。 ちなみにデフォルトは10になっています。 また#includeは複数の引数をとることも可能で、その場合には”,”で区切ります。


#parse( ファイル名または変数名 ) または #{parse}( ファイル名または変数名 ) #include( ファイル名または変数名 ) または #{include}( ファイル名または変数名 )

http://www.techscore.com/tech/Java/ApacheJakarta/Velocity/index/を見ると、さらに理解が深まると思います。