volocity加载模板&输出

Posted 小立攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了volocity加载模板&输出相关的知识,希望对你有一定的参考价值。

1、通过绝对路径加载vm模板
//初始化模板引擎
VelocityEngine ve = new VelocityEngine();

ve.init();

//根据绝对路径获取模板
Template template = ve.getTemplate("d:/test.vm"); 

//velocity上下文context
VelocityContext context = new VelocityContext();

//设置变量
context.put("name", "test");

//输出流
StringWriter writer = new StringWriter();

//转换输出
template.merge(context, writer);

System.out.println(writer.toString());

2、加载包路径下的vm模板
//模板引擎
VelocityEngine ve = new VelocityEngine();

Properties props = new Properties();        
props.setProperty("resource.loader", "class");
props.setProperty("class.resource.loader.class",
		"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");

ve.init(props);

//获取包路径com.cd下的test1.vm模板		
Template template = ve.getTemplate("com/cd/test1.vm");

//velocity上下文context
VelocityContext context = new VelocityContext();

//设置变量
context.put("name", "test");

//输出流
Writer out = new OutputStreamWriter(new FileOutputStream(
					new File("d:/test.doc")),"UTF-8");
					
template.merge(context, out);
            
template.process();

3、加载动态字符串形式模板
//Velocity引擎
VelocityEngine ve = new VelocityEngine();

ve.init();

//模板
String content = "hello $name";

//velocity上下文context
VelocityContext context = new VelocityContext();

//设置变量
context.put("name", "world.");

// 输出流
StringWriter writer = new StringWriter();

// 转换输出
ve.evaluate(context, writer, "", content); 

System.out.println(writer.toString());


以上是关于volocity加载模板&输出的主要内容,如果未能解决你的问题,请参考以下文章

OpenERP 电子邮件模板

自定义 WordPress 模板仅加载页眉和页脚

快速输入输出模板

使用应用模板在 XSLT 输出中保留   和其他特殊字符

输入输出外挂模板

输入输出优化模板