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();
}
}
}
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();
}
}
}