스프링에서는 벨로시티 뷰 템플릿 엔진(혹은 프레임워크)을 사용하기 쉽도록 하기 위해 따로 인터페이스 클래스를 제공하고 있다. 다음과 같은 설정만으로도 바로 벨로시티를 사용할 수 있다.
1. View Resolver
[code]<bean id=”viewResolver”
class=”org.springframework.web.servlet.view.velocity.VelocityViewResolver”>
<property name=”cache” value=”true”/>
<property name=”prefix” value=”/WEB-INF/vm/”/>
<property name=”suffix” value=”.vm”/>
<property name=”contentType” value=”text/html; charset=UTF-8″/>
</bean>[/code]
위와 같이 ViewResolver를 설정하여 준다. 기존의 Resolver를 교체하여도 되고 여러개의 Resolver를 설정하여도 된다. 스프링이 알아서 알맞는 Resolver를 선택한다고 한다. Content Type을 강제적으로 설정하여 Response의 헤더에 실려가도록 설정할 수 있다.
2. Velocity Config
[code]<bean id=”velocityConfig”
class=”org.springframework.web.servlet.view.velocity.VelocityConfigurer”>
<property name=”resourceLoaderPath” value=”/WEB-INF/vm/”/>
<property name=”velocityProperties”>
<props>
<prop key=”directive.foreach.counter.name”>loopCounter</prop>
<prop key=”directive.foreach.counter.initial.value”>0</prop>
<prop key=”input.encoding”>UTF-8</prop>
<prop key=”output.encoding”>UTF-8</prop>
</props>
</property>
</bean>[/code]
resourceLoaderPath에는 VTL 페이지들이 모여있는 곳의 경로를 지정하여 주면 된다. 이런 보안적인 제제가 필요없다면 /로 설정을 하면 된다. 밑의 directive.foreach.counter.name설정은 foreach사용시에 현재 카운터를 참조할 수 있는 변수명을 가르킨다. foreach중 $loopCounter 를 찍어보면 현재의 카운터가 출력된다.
directive.foreach.counter.initial.value는 벨로시티의 foreach카운터 디폴트 시작값이 0이 아닌 1로 되어있다. 대부분의 프로그래밍은 제로베이스 이므로 0으로 바꾸어 준다. 밑의 인코딩 옵션은 사용하기 원하는 인코딩 설정으로 하여주면 된다.