java根据freeMark模板生成内容

根据ftl模板生成文件内容可以用来生成代码模板,如下所示:

aa.ftl

name : ${name}  
age : ${age} 

aa.java

package mall_tools;

import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class Aaa {

    public static void main(String[] args) throws IOException, TemplateException {

        // 1.创建配置实例Cofiguration
        Configuration cfg = new Configuration();

        // 2.设置模板文件目录
        // (1)src目录下的目录(template在src下)
        // cfg.setDirectoryForTemplateLoading(new File("src/template"));
        // (2)完整路径(template在src下)
        // cfg.setDirectoryForTemplateLoading(new File(
        // "D:/cpic-env/workspace/javaFreemarker/src/template"));
        // cfg.setDirectoryForTemplateLoading(new File("src/template"));
        // (3)工程目录下的目录(template/main在工程下)--推荐
        cfg.setDirectoryForTemplateLoading(new File("./src/main/resources"));
        // cfg.setObjectWrapper(new DefaultObjectWrapper());
        // 获取模板(template)
        Template template = cfg.getTemplate("aa.ftl");
        // 建立数据模型(Map)
        Map<String, Object> root = new HashMap<>();
        root.put("name", "cxl");
        root.put("age", "25");
        // 获取输出流(指定到控制台(标准输出))
        Writer out = new OutputStreamWriter(System.out);
        // StringWriter out = new StringWriter();
        // System.out.println(out.toString());
        // 数据与模板合并(数据+模板=输出)
        template.process(root, out);
        out.flush();
    }
}

生成结果:

name : cxl
age : 25

原文地址:https://www.cnblogs.com/wulm/p/10894283.html