注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

和申的个人主页

专注于java开发,1985wanggang

 
 
 

日志

 
 

Java使用velocity 模板 生成字符串  

2013-09-05 16:24:58|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |



import java.io.StringWriter;
import java.util.Map;
import java.util.Properties;

import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;

/**
* 使用Velocity进行渲染字符串
*
*/
public final class VelocityUtil {
private VelocityUtil() {}

private final static VelocityEngine INSTANCE = new VelocityEngine();

static {
try {
Properties p = new Properties();

p.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
//p.put("output.encoding", "UTF-8");
//p.put("input.encoding", "UTF-8");

//Velocity.init(p);

INSTANCE.init(p);
} catch (Exception ex) {
throw new RuntimeException("Failed to init Velocity", ex);
}
}

/**
* 根据上下文信息和模板渲染出字符串
*
* @param ctx 上下文
* @param template 模板信息
* @return 模板渲染之后的内容
*/
public static String rend(Map<String, Object> ctx, String template) {
StringWriter writer = new StringWriter();
try {
VelocityContext context = new VelocityContext(ctx);
INSTANCE.evaluate(context, writer, template, template);
return writer.toString();
} catch (Exception ex) {
throw new RuntimeException("Failed to rend template " + template, ex);
}
}

public static String rendVmFile(Map<String, Object> ctx, String templatePath) {
StringWriter writer = new StringWriter();
try {
INSTANCE.mergeTemplate(templatePath, "gbk", new VelocityContext(ctx), writer);
return writer.toString();
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}

}

import com.google.common.collect.Maps;

/**
* @author wanggang
*
*/
public class Test {

/**
* @param args
*/
public static void main(String[] args) {
Map<String, Object> ctx = Maps.newHashMap();

ctx.put("Nick", "Heshen");
ctx.put("hello", "Hello world!");


System.out.println(VelocityUtil.rendVmFile(ctx, "config/hello.vm"));
System.out.println(VelocityUtil.rend(ctx, "${Nick}"));
}

}

src/main/resources/config/hello.vm

${hello}

pom.xml

<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>1.4</version>
</dependency>
<!-- google -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>14.0.1</version>
</dependency>


程序输出:
Hello world!
Heshen


统计信息唧唧歪歪唧唧网ggyygg.net
  评论这张
 
阅读(898)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016