velocity模板在spring中的简单配置

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>

 

以上只是一个简单的配置过程。如有错误,望告知,谢谢!!!!

posted on 2012-10-12 17:56  zzjjian333  阅读(8068)  评论(0编辑  收藏  举报