1.首先需要配置的是velocity引擎自己,可以通過以下方式在spring配置文件中聲明一個VelocityConfigurer Bean:
spring-webmvc-3.2.0.M1.jar
VelocityConfigurer負責在spring中設置Velocity引擎。這裏,通過屬性resourceLoaderPath告訴Velocity到哪裏尋找它的模板。建議將模板放到WEB-INF下的某個子目錄下,可以保證這些模板不能被直接訪問。
<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> <property name="resourceLoaderPath"> <value>WEB-INF/Template/</value> </property> </bean>
在配置屬性時有兩種方式,一是通過下面這種屬性的方式:
<property name="velocityProperties"> <props> <prop key=""> </prop> <prop key=""> </prop> </props> </property>
二是通過配置文件的方式(velocity.properties)
<property name="configLocation"> <value>/WET-INF/config/velocity.properties</value> </property>
2.解析velocity視圖
配置視圖解析器
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> <property name="viewClass"> <value>org.springframework.web.servlet.view.velocity.VelocityView</value> </property> <property name="suffix"> <value>.vm</value> </property> </bean>
VelocityViewResolver和Velocity的關係與InternalResourceViewResolver和JSP的關係相似。InternalResourceViewResolver使用prefix屬性和suffix屬性由視圖的邏輯名構造出模板文件路徑,這樣在Controller中的ModelAndView中直接通過文件名找模板。如下所示:
< bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass"> <value>org.springframework.web.servlet.view.InternalResourceView</value> </property> < property name="prefix"> <value>/WEB-INF/JSP/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean>
在這裏我們僅僅設置了suffix屬性爲.vm擴展名。由於模版文件的路徑已經通過VelocityConfigurer的resourceLoaderPath屬性配置好了。
3.渲染頁面
例如map.put("hello","helloWorld");
返回信息爲return new ModelAndView("index",map);
視圖的邏輯名爲index。當解析這個視圖時,index加上後綴.vm構成一個模板名index.vm。VelocityViewResolver會在WEB-INF/vilocity路徑下尋找這個模板。
然後再index.vm下通過如下就可以顯示數據:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> <h1>${hello}</h1> </body> </html>
以上只是一個簡單的配置過程。如有錯誤,望告知,謝謝!!!!