freemarker生成xml,htmL,word等等模板入门案例

时间:2024-03-22 14:31:35

此案例使用简单的map,如需要使用更高级的请使用实体类封装,原理相同,最终需要的是map类型的数据,无论是list都一样

list<Map<String,Object>> list =new HashMap<Map<String,Object>>();

在项目开发中生成xml,xb,html,word的入门首选,理解是关键。至于生成复杂的xml,xb结构的数据,在word中动态生成列等案例后续补充


freemarker生成xml,htmL,word等等模板入门案例

1.导入freemarker的jar包

2.书写代码和模板文件

3.运行

1.代码

package com.freemarker;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;


public class TestFreemarker {


public static void main(String[] args) {
try {

Configuration configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
configuration.setDirectoryForTemplateLoading(new File("D:\\develop\\testdemo\\src\\com\\freemarker"));
Template template = configuration.getTemplate("template.ftl");
Map<String,String> map = new HashMap<String,String>();
map.put("username", "zhangsan");
map.put("password", "123456");
File file = new File("D:\\test.xml");
BufferedWriter out = new BufferedWriter(new FileWriter(file));
template.process(map, out);
out.close();

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}



2.模板template.ftl文件内容


freemarker生成xml,htmL,word等等模板入门案例

<?xml version="1.0" encoding="UTF-8"?>
<p:a ${username}></p:a>
<td>${password}</td>