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