FreeMarker使用

                                      FreeMarker使用

demo1

pom

    
        
            org.freemarker
            freemarker
            2.3.20
        
        
            junit
            junit
            4.12
            test
        
        
            mysql
            mysql-connector-java
            5.1.6
        
    

codeutils\codeutils\templates

template01.ftl

<#-- assign指令 : 再ftl模板中定义数据存入到root节点下
<#assign name="zhangsan">
-->

<#--
${name}

欢迎您:${username}
-->
<#-- 获取数据  ${根节点下的数据....属性} -->

<#-- if指令
<#if flag=1>
    传入数据=1
    <#elseif flag=2>
    传入数据=2
    <#else>
    传入数据=其他

 -->

<#-- list指令 : 循环迭代
    数据名称 as 别名

<#list weeks as abc>
    ${abc_index} =  ${abc}

-->

<#--模板包含 include
<#include "template02.ftl" >
-->

${username?lower_case}

template02.ftl

第二个模板:${username}

FreeMarkerTest01

package cn.itcast.freemarker.test;

import freemarker.cache.FileTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.junit.Test;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 第一个FreeMarker程序(数据+模板=文件输出)
 *      1.操作步骤
 */
public class FreeMarkerTest01 {

    @Test
    public void test01() throws Exception {
        //1.创建FreeMarker的配置类
        Configuration cfg = new Configuration();
        //2.指定模板加载器:将模板存入缓存中
        //文件路径加载器
        FileTemplateLoader ftl = new FileTemplateLoader(new File("templates"));
        cfg.setTemplateLoader(ftl);
        //3.获取模板
        Template template = cfg.getTemplate("template01.ftl");
        //4.构造数据模型
        Map dataModel = new HashMap<>();

        //

        //user对象
        dataModel.put("username","ZHangsan");
        dataModel.put("flag",3);

        List list = new ArrayList<>();
        list.add("星期一");
        list.add("星期二");
        list.add("星期三");
        list.add("星期四");

        dataModel.put("weeks",list);

        //5.文件输出
        /**
         * 处理模型
         *      参数一:数据模型
         *      参数二:writer(FileWriter(文件输出),printWriter(控制台输出))
         */
        //template.process(dataModel,new FileWriter(new File("C:\\Users\\ThinkPad\\Desktop\\ihrm\\day12\\test\\a.txt")));
        template.process(dataModel,new PrintWriter(System.out));
    }
}

FreeMarkerTest02.java

package cn.itcast.freemarker.test;

import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.junit.Test;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;

/**
 * 测试字符串模板
 *
 *
 */
public class FreeMarkerTest02 {

    /**
     *  com.${p1}.${p1}.${p1}.User
     *
     */
    @Test
    public void test() throws Exception {
        //1.创建配置对象
        Configuration cfg = new Configuration();
        //2.指定加载器
        cfg.setTemplateLoader(new StringTemplateLoader());
        //3.创建字符串模板
        // i.字符串
        String templateString = "欢迎您:${username}";
        // ii.通过字符串创建模板
        Template template = new Template("name1",new StringReader(templateString),cfg);
        //4.构造数据
        Map dataModel = new HashMap<>();
        dataModel.put("username","张三");
        //5.处理模板
        template.process(dataModel,new PrintWriter(System.out));
    }
}

FreeMarker手册及工具代码:

链接:https://pan.baidu.com/s/1Jesxi7jqWO_3xsqrp6K1Uw&shfl=sharepset 
提取码:1wcx 

你可能感兴趣的:(java)