Velocity
Velocity
소개
- 벨로시티란 자바 기반의 템플릿 엔진입니다.
벨로시티를 활용하면 간단하면서도 강력한 템플릿 언어를 통하여 자바 코드에 정의된 객체를 액세스할 수 있습니다.
벨로시티를 웹 개발에 사용하면, 웹 디자이너는 자바 프로그래머와 병렬로 작업을 할 수 있으며 MVC(모델-뷰-컨트롤러) 모델에 따라 웹 사이트를 개발할 수 있습니다. 더 자세히 설명하면 웹 페이지 디자이너의 경우 보기 좋은 사이트를 만드는 데만 집중하면 되고, 프로그래머는 잘 동작하는 코드를 만드는 데만 집중하면 된다는 뜻입니다.
벨로시티는 웹 페이지와 자바 코드를 분리하여, 장기적인 측면에서 볼 때 웹 사이트를 손쉽게 유지보수할 수 있도록 하고, 자바 서버 페이지 (JSP) 또는 PHP를 대체할 수 있는 방안을 제시합니다. 벨로시티의 쓰임새는 웹 사이트에 국한되지 않습니다. 예를 들면, 템플릿으로부터 SQL이나 포스트스크립트, 또는 XML(XML 변환에 대해서는 벨로시티 툴 중 하나인 아나키아(Anakia)를 참조)문서를 생성하는 데 쓰일 수 있습니다. 벨로시티는 스탠드얼론 유틸리티처럼 사용하여 소스 코드나 리포트를 생성할 수도 있고, 다른 시스템의 컴포넌트로 통합할 수도 있습니다. 또한 벨로시티는 터빈 (또다른 자카르타 서브 프로젝트 중 하나) 웹 애플리케이션 프레임웍에 템플릿 서비스를 제공합니다. 벨로시티와 터빈을 조합하면 진정한 MVC 모델에 따라 웹 애플리케이션을 개발할 수 있습니다
설치 방법
- http://velocity.apache.org/download.cgi
에서 1.5zip 를 다운
velocity-dep-1.5.jar
velocity-1.5.jar
파일을 web_inf/lib 아래 놓습니다.
- web.xml 수정
<servlet> <servlet-name>velocity</servlet-name> <servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet </servlet-class> <init-param> <param-name>org.apache.velocity.toolbox</param-name> <param-value>/WEB-INF/velocity-toolbox.xml</param-value> </init-param> <init-param> <param-name>org.apache.velocity.properties</param-name> <param-value>/WEB-INF/velocity.properties</param-value> </init-param> <load-on-startup>10</load-on-startup> </servlet> <servlet-mapping> <servlet-name>velocity</servlet-name> <url-pattern>*.vm</url-pattern> </servlet-mapping>
- 파일 생성
velocity.properties 파일을 생성한 후 web_inf 아래 둡니다.(생성하지 않아도 무관합니다.)
velocity-toolbox.xml 을 생성 한 후 web_inf 아래 둡니다.
velocity-toolbox.xml<?xml version="1.0"?>
<toolbox>
<data type="number">
<key>version</key>
<value>1.1</value>
</data>
<tool>
<key>date</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.DateTool</class>
</tool>
</toolbox>
사용 예(기본 문법)
Velocity Template Language(VTL) 은 Template 에서 사용되는 Velocity 고유의 언어를 의미합니다.
- References(참조형)
Variables(변수) – 다음과 같이 $를 먼저 쓰고 그 뒤에 식별자를 적어주는 방식으로 사용
ex) $foo
Property(특성) – $ 다음에 식별자를 쓰고, 마침표(.)후에 다시 식별자의 형태로 사용
ex) $foo.name
Method(메소드) - $다음에 식별자를 쓰고 마침표 후에 호출할 메소드의 이름을 적는다
ex)$foo.getName()
- Directive(지시형)
#set – reference 의 값을 설정한다.
#if/elseif/else – 조건문 제어
#foreach –반복문 제어
#include – velocity 로 파싱되지 않는 파일의 출력
#parse –velocity 로 파싱된 파일 출력
#stop –template 엔진의 정지
#macro – 반복적으로 사용할 vm정의
- Comment (주석)
## - 한줄짜리 주석 #* … *# 여러줄 짜리 주석
##This is an example velocity template #set($this = “Velocity”) $this is great! But It’s so hard. #foreach($name in $list) $name is great! #end #set($condition = true) #if ($condition) The condition is true! #else The condition is false #end
http://velocity.apache.org/engine/releases/velocity-1.5/getting-started.html
Tool box 에 대해
VelocityTools is a collection of Velocity subprojects with a common goal of creating tools and infrastructure for building both web and non-web applications using the Velocity template engine.
- Generic Tool (http://jakarta.apache.org/velocity/tools/generic/)
*DateTool : A tool for manipulating and formatting dates
*MathTool :A tool for performing floating point math.
*NumberTool :A tool for formatting numbers
*IteratorTool :A convenience tool to use with #foreach loops. It wraps a list to let the designer specify a
condition to terminate the loop, and reuse the same list in different loops.
*RenderTool:A tool to evaluate and render arbitrary strings of VTL (Velocity Template Language).Example uses: $date -> Oct 19, 2003 9:54:50 PM $date.long -> October 19, 2003 9:54:50 PM PDT $date.medium_time -> 9:54:50 PM $date.full_date -> Sunday, October 19, 2003 $date.get('default','short') -> Oct 19, 2003 9:54 PM $date.get('yyyy-M-d H:m:s') -> 2003-10-19 21:54:50 $myDate -> Tue Oct 07 03:14:50 PDT 2003 $date.format('medium',$myDate) -> Oct 7, 2003 3:14:50 AM
출처 : 인터넷, (일부 최근 정보에 맞게 수정하였습니다.)
'그거 > Tech' 카테고리의 다른 글
Aspect Oriented Programming (AOP) (0) | 2007.04.09 |
---|---|
JSTL(JavaServer Pages Standard Tag Library) (0) | 2007.03.29 |
DOM(Document Object Model) (0) | 2007.03.20 |
패턴과 프레임워크 (0) | 2007.03.14 |
Crossing borders: JavaScript의 특징 (한글) (0) | 2007.03.13 |