1、使用FreeMarker需要freemarker-2.3.8.jar,当然,也有其他版本的
2、在java工程里面建如下图的包路径
org.test是顶层包,test.java是测试类,里面就一个main方法,调用MessageTempleteManager的方法。
MessageTempleteManager负责生成xml;
templete包下面放模板文件
下面看代码:
public class MessageTempleteManager {
private static MessageTempleteManager tplm = null;
private Configuration cfg = null;
private MessageTempleteManager() {
cfg = new Configuration();
try {
cfg.setClassForTemplateLoading(this.getClass(), "/org/test/templete/");
} catch (Exception e) {
}
}
private static Template getTemplate(String name) throws IOException {
if(tplm == null) {
tplm = new MessageTempleteManager();
}
return tplm.cfg.getTemplate(name);
}
public static String process(String templatefile, Map param) throws IOException, TemplateException{
Template template=MessageTempleteManager.getTemplate(templatefile);
StringWriter sw = new StringWriter();
template.process(param, sw);
return sw.toString();
}
}
模板test.ftl的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Root path="${path}" state="0" />
测试类:
public class Test {
public static void main(String[] args) throws IOException, TemplateException {
Map<String,Object> param = new HashMap<String, Object>();
param.put("path","111111");
System.out.println(MessageTempleteManager.process("test.ftl", param));
}
}