spring结合velocity的应用实例
import?java.util.Map;
import?org.apache.velocity.app.VelocityEngine;
import?org.springframework.ui.velocity.VelocityEngineUtils;
public?class?MsgBean?...{
????private?VelocityEngine?velocityEngine;
????private?String?msg;
????private?Map?model;?//?用来保存velocity中的参数值
????private?String?encoding;?//?编码
????private?String?templateLocation;?//?注入的velocity模块
????public?String?getEncoding()?...{
????????return?encoding;
????}
????public?void?setEncoding(String?encoding)?...{
????????this.encoding?=?encoding;
????}
????public?String?getTemplateLocation()?...{
????????return?templateLocation;
????}
????public?void?setTemplateLocation(String?templateLocation)?...{
????????this.templateLocation?=?templateLocation;
????}
????public?Map?getModel()?...{
????????return?model;
????}
????public?void?setModel(Map?model)?...{
????????this.model?=?model;
????}
????public?String?getMsg()?...{
????????//?return?title;
????????//?将参数值注入到模块后的返回值
????????return?VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,
????????????????templateLocation,?encoding,?model);
????}
????public?void?setMsg(String?msg)?...{
????????this.msg?=?msg;
????}
????public?VelocityEngine?getVelocityEngine()?...{
????????return?velocityEngine;
????}
????public?void?setVelocityEngine(VelocityEngine?velocityEngine)?...{
????????this.velocityEngine?=?velocityEngine;
????}
}
<?xml?version="1.0"?encoding="UTF-8"?>
<beans?xmlns="http://www.springframework.org/schema/beans"
???????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
???????xsi:schemaLocation="http://www.springframework.org/schema/beans?http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
?
????
?<bean?id="velocityEngine"?class="org.springframework.ui.velocity.VelocityEngineFactoryBean">??
???<property?name="resourceLoaderPath">
????????????<value>classpath:velocity</value>
?????</property>
????<property?name="velocityProperties">
?????????????????<props>
???????????????????????<prop?key="resource.loader">class</prop>
???????????????????????<prop?key="class.resource.loader.class">
?????????????????????????????org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
???????????????????????</prop>
???????????????????????<prop?key="velocimacro.library"></prop>
???????????????????????<prop?key="input.encoding">GBK</prop>
???????????????????????<prop?key="output.encoding">GBK</prop>
???????????????????????<prop?key="default.contentType">text/html;?charset=GBK</prop>
?????????????????</props>
???????????</property>
</bean>
<bean?id="msgBean"?class="MsgBean">
????????<property?name="templateLocation"?value="test.vm"></property>
????????<property?name="encoding"?value="GBK"></property>
????????<property?name="velocityEngine"?ref="velocityEngine"></property>
</bean>

</beans>
import?java.io.File;
import?java.io.IOException;
import?java.util.HashMap;
import?java.util.Map;
import?org.apache.commons.io.FileUtils;
import?org.springframework.context.ApplicationContext;
import?org.springframework.context.support.ClassPathXmlApplicationContext;

public?class?TestVeloctiy?...{
????public?static?void?main(String[]?args)?...{
????????//?TODO?Auto-generated?method?stub
????????ApplicationContext?ctx=new?ClassPathXmlApplicationContext("test3.xml");
????????MsgBean????msgBean=((MsgBean)ctx.getBean("msgBean"));
????????Map<String,?String>?data?=?new?HashMap<String,?String>();
????????data.put("me","yourname");
????????msgBean.setModel(data);
????????System.out.println(msgBean.getMsg());
????????
?????????
????????//根据apache?common?IO?组件直接将内容写到一个文件中去.?
?????????File?dest?=?new?File(?"test.html"?);??????????
??????????try?...{
????????????FileUtils.writeStringToFile(?dest,?msgBean.getMsg(),?"GBK"?);
????????}?catch?(IOException?e)?...{
????????????//?TODO?Auto-generated?catch?block
????????????e.printStackTrace();
????????}
????}
}