Velocity의 기본 문법
1. VTL(Velocity Template Language) 장점
@ UI 디자이너와 개발자의 병렬 개발 가능
@ 각각의 영역에 집중가능
@ 유지보수 용의
@ JSP,PHP 대체방안 제시
2. VTL 문장은 # 으로 시작하며 변수명은 $ 로 표시한다.
- VTL 문장의 시작은 #으로 시작합니다.
- 변수의 시작은 $로 시작합니다.
따라서 다음과 같이 #set($color = "blue") 라고 하면 $color 변수에 String "blue" 값을 담는 VTL 문법이 되겠습니다. 그러면 Hello World 를 출력해보도록 하겠습니다.
<body>
#set($color = "blue")
내가 좋아하는 색깔은 $color 입니다.
</body>
</html>
*VTL을 실행하기 위해서는 필수적인 Jar 파일이 있습니다. 아래의 Jar 파일을 WEB-INF/lib 안에 복사하세요
velocity-tools-*.jar : velocity tool
commons-digester
commons-collections
commons-beanutils
3. 주석처리방법
한줄 : ##
여러줄 : #* *#
VTL에서 주석은 다음과 같이 사용합니다. 일반적으로 주석이라 하면 <!-- --> 을 사용했는데, VTL은 다음과 같은 주석을 사용합니다.
## This is Commnets!!
#*
This is Comments!!
*#
4. 자바객체사용해서 하위 객체 접근이 가능하다
$ custom.Address
$ custom.getAddress()
5. 값을 불러오는 여러가지 방법
$ customer.address 를 다음과 같이 표현할수 있다.
$ getaddress()
$ getAddress()
$ get("address")
$ isAddress()
6. 중간에 변수가 들어가서 잘못 파싱되는것을 방지하기위해 쓰는 방식인데 기본적으로 이렇게 처리하는 버릇을 들이자
Jack is a $vicemaniac.
Jack is a ${vice}maniac.
7. 값이 없을 시에 공백처리를 원할때
<input type="text" name="email" value="$!email>
좀더 안전하기를 원하면 value="$!{email}"
8. #set 지시자 사용시 큰따옴포("") 안의 내용은 파싱되어 그 결과물을 출력한다.
#set( $template = "$directoryRoot / $templateName")
지시 및 연산 변수의 경우는 다음과 같습니다.
#set( $b= 20 )
#set( $value = $a + 1 ) ## 11
#set( $value = $b - 1 ) ## 9
#set( $value = $a * $b ) ## 200
#set( $value = $a / $b ) ## 0.5
9. '' 작은 따옴표는 파싱되지 않고 내용이 그대로 출력되지만
velocity.properties 안의 Stringliterals.interpolote = false 값을 바꿈으로서 파싱이 되도록 설정한다.
10. for 문으로 반복문을 처리하고 싶을때
iterator 와 비슷한 형태의 구조이다.
#foreach($page in $boardList)
<!-- 처리하고자 하는 내용 -->
#end
11. if 문을 쓰고싶을때
#if($velocityCount <= 3)
$item
#end
그 외 제어문은 다음과 같습니다.
#set($a = 10)
#if($a > 9)
9보다 큽니다
#elseif($a == 10)
10과 같습니다
#end
반복문의 경우는 다음과 같습니다.
#foreach( $product in $allProducts )
<li>$product.id , $product.name</li>
#end
</ul>
일반적인 foreach와 같습니다. Controller에서 ArrayList 객체를 allProducts로 네임을 정해서 View 단으로 보냈다면 위와 같은 문법으로 allProducts의 객체를 $product로 담고, $product를 통해 각 프로퍼티를 출력할 수 있습니다.
출처 : http://dsstory.tistory.com/105
'개발 > Java' 카테고리의 다른 글
JAVA Tip (0) | 2011.04.13 |
---|---|
JNI 라이브러리 파일의 경로 동적 설정 (0) | 2011.02.25 |
Spring - Quartz를 사용하여 스케쥴러 구현하기 (0) | 2011.02.08 |
EHCache를 이용한 캐시 구현 (0) | 2011.01.05 |
javaBean 코드를 좀더 사용하기 편하게 하는 Lombok (0) | 2011.01.04 |