http://freemarker.foofun.cn/

https://freemarker.apache.org/

https://mvnrepository.com/artifact/org.freemarker/freemarker

 

常用代码

    @Test
    public void deptemp() throws TemplateNotFoundException, MalformedTemplateNameException, ParseException, IOException, TemplateException {
        
        String templateName = "deptemp.ftl";
        String templatePath = "d:\\template";
        String fileOutPath = "d:\\deptemp.txt";
        
        Map<String, Object> map = initDatamydeptemp();
        
        Configuration config = new Configuration();
        config.setDefaultEncoding("UTF-8");
        config.setDirectoryForTemplateLoading(new File(templatePath));
        Template template = config.getTemplate(templateName);
        template.process(map, new FileWriter(fileOutPath));
        
    }

    private Map<String, Object> initDatamydeptemp() {
        
        List<Emp> emps = new ArrayList<>();
        Emp emp1 = new Emp("1","liubei");
        Emp emp2 = new Emp("2","guanyu");
        emps.add(emp1);
        emps.add(emp2);
        
        List<Dept> depts = new ArrayList<>();
        Dept dept1 = new Dept("1","jishubu",emps);
        Dept dept2 = new Dept("2","caiwubu",emps);
        depts.add(dept1);
        depts.add(dept2);
        
        //创建如下的测试数据
        Map<String, Object> map = new HashMap<String, Object>();
        //列表
        map.put("depts", depts);
        map.put("id", "001");
        return map;
    }

 

常用标签

1. 单值

<#-- 取单值 -->
${id}

2. 集合

<#-- 取集合 -->
<#list depts as dept>
    部门ID:${dept.id} 
    部门名称:${dept.name} 
    <#-- 取复合对象 -->
    <#list dept.emps as emp>
        <#-- if判断 -->
        <#if (emp.name=='liubei')>
            员工ID:${emp.id} 
            员工名称:${emp.name} 
        </#if>
    </#list>
</#list>
posted on 2020-02-04 18:55  renguanyu  阅读(496)  评论(0编辑  收藏  举报