项目结构
这里写图片描述

HTML模板

freemarker.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
-----------------------------------------
//字符串
${world}
<br>
-----------------------------------------
//对象数据
${student}/${student.id}/${student.name}
<br>
-----------------------------------------
<!--        //list 集合数据
        List<String> persons=new ArrayList<String>();
        persons.add("小米1");
        persons.add("小米2");
        persons.add("小米3");
        root.put("persons", persons); -->
        <#list persons as person>
            ${person}
        </#list>
            <br>
            获取当前迭代的索引
        <#list persons as person>
                ${person_index}
        </#list>

    <br>
-----------------------------------------   
<!--                
        //map 集合数据
        Map mx=new HashMap();
        mx.put("小米1", "小米1");
        mx.put("小米2", "小米2");
        mx.put("xm3", "小米3");
        root.put("mx", mx);
             -->
        <#list mx ? keys as key>
            ${mx[key]}
        </#list> 

    <br>    
        ${mx.xm3} /${mx.小米2} /${mx.小米1} 
    <br>
-----------------------------------------           
<!--        //list<map>数据
        List<Map> listMap=new ArrayList<Map>();
        Map mx1=new HashMap();
        Map mx2=new HashMap();
        mx1.put("小米1", "小米1");
        mx1.put("小米2", "小米2");
        mx2.put("xm3", "小米3");
        listMap.add(mx1);
        listMap.add(mx2); -->
            <br>
-----------------------------------------           
    <#list listMap as map>
            <#list map ? keys as key>
                ${map[key]}
            </#list> 
    </#list>            
    <br>    
    在模板中赋值情况1
<#assign x=0/>
${x}
<br>
-----------------------------------------   
在模板中赋值情况1
<#assign y='${world}'/>
${y}
<br>    
-----------------------------------------
在模板中赋值情况3
<#assign y>世界太好了</#assign>
${y}
<br>
-----------------------------------------   
在模板中赋值情况4
<#assign y>
        <#list persons as person>
            ${person}
        </#list>
</#assign>
${y}
<br>    
-----------------------------------------
if语句
        <#list persons as person>
            <#if person=='小米1'>
                ${person}
            </#if>
        </#list>
-----------------------------------------
if语句 按索引
            <#list persons as person>
                <#if person_index!=0>
                    ${person}
                </#if>
        </#list>
-----------------------------------------
|| && else语句 按索引
            <#list persons as person>
                <#if person_index==0 ||person_index==1>
                    ${person}
                    <#else>
                        ${person}
                </#if>
        </#list>
----------------------- 
时间格式
${curTime?date}
${curTime?time}
${curTime?datetime}

-----------------------
null格式
${testNull!"我是null"}
${testNull!""}
${testNull!}
-----------------------


宏定义  页面写逻辑判断
<#macro table pageNo>
    ${pageNo}
</#macro>
<@table pageNo=8 />


-----------------------
<#macro table u>
    ${u}
    <#nested/>
</#macro>
<@table u=8>this is 8</@table>
------------------------
include

</body>
</html>

freeamr数据


public class FreemarkerDemo {
    //搭建freemarker 
    public static void main(String[] args) throws IOException, TemplateException {
        //配置对象  ftl freemarker template 的简写,demo.ftl建议,但是demo.xml,demo.html等等都行 
        Configuration conf=new Configuration();
        //模板路径
        String dir="F:\\developSource\\eclipse\\workSpaceX86_64\\freemarker\\ftl\\";//freemarker.html
        //导入模板目录
        conf.setDirectoryForTemplateLoading(new File(dir));
        //获取模板
        Template template = conf.getTemplate("freemarker.html");

        //数据
        Map root=new HashMap();
        root.put("world", "世界你好");

        //对象数据
        Student student=new Student(1,"小米");
        root.put("student", student);
        //list 集合数据
        List<String> persons=new ArrayList<String>();
        persons.add("小米1");
        persons.add("小米2");
        persons.add("小米3");
        root.put("persons", persons);

        //map 集合数据
        Map mx=new HashMap();
        mx.put("小米1", "小米1");
        mx.put("小米2", "小米2");
        mx.put("xm3", "小米3");
        root.put("mx", mx);

        //list<map>数据
        List<Map> listMap=new ArrayList<Map>();
        Map mx1=new HashMap();
        Map mx2=new HashMap();
        mx1.put("小米1", "小米1");
        mx1.put("小米2", "小米2");
        mx2.put("xm3", "小米3");
        listMap.add(mx1);
        listMap.add(mx2);
        root.put("listMap", listMap);

        //时间格式
        root.put("curTime", new Date());
        //null格式
        root.put("testNull", null);


        //输出
        Writer out=new FileWriter(new File(dir+"hello.html"));

        //生成开始
        template.process(root, out);
        //关闭流
        out.flush();
        out.close();


        System.out.println("生成了");


    }
}

模板+数据–》新的页面 hello.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
-----------------------------------------
//字符串
世界你好
<br>
-----------------------------------------
//对象数据
cn.zhou.Student@7d7c214d/1/小米
<br>
-----------------------------------------
<!--        //list 集合数据
        List<String> persons=new ArrayList<String>();
        persons.add("小米1");
        persons.add("小米2");
        persons.add("小米3");
        root.put("persons", persons); -->
            小米1
            小米2
            小米3
            <br>
            获取当前迭代的索引
                0
                1
                2

    <br>
-----------------------------------------   
<!--                
        //map 集合数据
        Map mx=new HashMap();
        mx.put("小米1", "小米1");
        mx.put("小米2", "小米2");
        mx.put("xm3", "小米3");
        root.put("mx", mx);
             -->
            小米2
            小米3
            小米1

    <br>    
        小米3 /小米2 /小米1 
    <br>
-----------------------------------------           
<!--        //list<map>数据
        List<Map> listMap=new ArrayList<Map>();
        Map mx1=new HashMap();
        Map mx2=new HashMap();
        mx1.put("小米1", "小米1");
        mx1.put("小米2", "小米2");
        mx2.put("xm3", "小米3");
        listMap.add(mx1);
        listMap.add(mx2); -->
            <br>
-----------------------------------------           
                小米2
                小米1
                小米3
    <br>    
    在模板中赋值情况1
0
<br>
-----------------------------------------   
在模板中赋值情况1
世界你好
<br>    
-----------------------------------------
在模板中赋值情况3
世界太好了
<br>
-----------------------------------------   
在模板中赋值情况4
            小米1
            小米2
            小米3

<br>    
-----------------------------------------
if语句
                小米1
-----------------------------------------
if语句 按索引
                    小米2
                    小米3
-----------------------------------------
|| && else语句 按索引
                    小米1
                    小米2
                        小米3
----------------------- 
时间格式
2017-4-19
15:28:12
2017-4-19 15:28:12

-----------------------
null格式
我是null


-----------------------


宏定义  页面写逻辑判断
    8


-----------------------
    8
this is 8
------------------------
include

</body>
</html>
posted on 2017-04-19 15:31  2637282556  阅读(176)  评论(0编辑  收藏  举报