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(); }
}}
本文来自博客,转载请标明出处:http://blog.csdn.net/pengchua/archive/2008/01/17/2049490.aspx