您的位置:首页 > 编程语言 > Java开发

velocity模板在spring中的简单配置

2016-07-21 16:42 459 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: