package com.mooc.freemarkerXML; import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map; import freemarker.template.Configuration; import freemarker.template.Template;
import freemarker.template.TemplateException; public class XMLTest { public static Template getTemplate(String name){
Configuration cfg = new Configuration();
cfg.setClassForTemplateLoading(XMLTest.class, "/resources/");
Template template = null;
try {
template = cfg.getTemplate(name);
} catch (IOException e) {
e.printStackTrace();
}
return template;
} public static String process(String templatefile, Map<String, Object> param) throws IOException, TemplateException,
Exception{
Template template = XMLTest.getTemplate(templatefile);
StringWriter sw = new StringWriter();
template.process(param, sw);
return sw.toString();
}
public static void main(String[] args) {
Map<String, Object> responseMap = new HashMap<String, Object>();
responseMap.put("id", "1");
responseMap.put("name", "红楼梦");
responseMap.put("author", "曹雪芹");
responseMap.put("year", "1862");
responseMap.put("price", "98");
String resp = null;
try {
resp = XMLTest.process("book.ftl", responseMap);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(resp);
} }
book.ftl
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book id="${id}">
<name>${name}</name>
<author>${author}</author>
<year>${year}</year>
<price>${price}</price>
<address><#if address??>${address}</#if></address>
</book>
</bookstore>
XMLSerializer read()