98..Etc/velocity2009. 2. 27. 15:11
반응형

1. 주석 사용
## 로 시작하면 한 줄 코멘트
#* 로 시작하고 *#로 끝나면, 여러 줄 코멘트
#** 로 시작하고 *#로 끝나면, 블록 코멘트.

2. 레퍼런스
$(variable) : 컨텍스트에서 제공되는 변수에 대한 레퍼런스
$(variable.property) : 속성에 대한 레퍼런스
$(cariable.method(arg)) : 메소드에 대한 레퍼런스

예)
$date.format("yyyy-MM-dd", $createTime)

3. 디렉티브
#set : 레퍼런스의 값 설정
#if/#elseif/#else : 조건문 제어
#foreach : 객체 리스트에 댛란 반복 제어
#include : 벨로시티로 파싱되지 않은 로컬 파일 출력
#parse : 벨로시티로 파싱된 로컬 템플릿 출력
#stop : 템플릿 엔진의 동작 정지
#macro : 반복적으로 사용될 VM(velocimacro)

예)
*. set
#set ($val = 1234567)

*. if/elseif/else
#if( $foo == $bar ) -> 등치 연산자
#if( $foo == 42 )
#if( $foo == "bar" )
#if( !$foo ) -> Boolean NOT

*. foreach
$allPages가 List나 Array인 경우
#foreach( $page in $allPages)
   $page
#end

$allPages가 Map이나 Hashtable일 경우

#foreach( $key in $allPages.keySet())
   $key -> $allPages.get($key)
#end

*. include
Velocity에 의해 파싱되지 않는 로컬 파일(들)을 렌더링
#include ("a.html")

*. parse
Velocity에 의해 파싱되는 로컬 템플릿을 렌더링
#parse ("me.vm")

*. macro
편리한 함수를 만들어서 사용 가능함
#**
 * General purpose date formatter. Need to be careful of whitespace.
 * @param dateFormat Date format to be used (see java.text.SimpleDateFormat).
 * @param date Date object to be formatted (see java.util.Date).
 *#
#macro(formatDate $dateFormat $date )
  $utils.formatDate($date, $dateFormat)
#end

4. toolbox.xml(Velocity Tool)을 활용한 사용자 정의 오브젝트의 사용
toolbox.xml에 사용자 정의 클래스를 적용하여 vtl에서 사용할 수 있다. getXX(), setXX(), isXX() 형태로 정의되었을 경우 가능

예)
*. Date Tool
org.apache.velocity.tools.generic.DateTool class를 추가함
$date.format("yyyy-MM-dd HH:mm:ss", $myDate)   -> 2008-06-03 19:11:09

*. Number Tool
org.apache.velocity.tools.generic.NumberTool class를 추가함
$number.format("currency", $val)   -> ₩1,234,567
$number.format("integer", $val)    -> 1,234,567

*. Escape Tool
org.apache.velocity.tools.generic.EscapeTool를 추가함
$javascript                  -> I'm Mimul
$esc.javascript($javascript) -> I\'m Mimul

Posted by 1010