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