velocity模板在spring中的简单配置

来源:互联网 发布:淘宝真皮女装退货率 编辑:程序博客网 时间:2024/05/21 10:35

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>
0 0
原创粉丝点击