FreeMarker的简单测试

来源:互联网 发布:tvbox网络机刷机 编辑:程序博客网 时间:2024/05/17 22:38

项目结构
这里写图片描述

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>        在模板中赋值情况10<br>-----------------------------------------   在模板中赋值情况1世界你好<br>    -----------------------------------------在模板中赋值情况3世界太好了<br>-----------------------------------------   在模板中赋值情况4            小米1            小米2            小米3<br>    -----------------------------------------if语句                小米1-----------------------------------------if语句 按索引                    小米2                    小米3-----------------------------------------|| && else语句 按索引                    小米1                    小米2                        小米3----------------------- 时间格式2017-4-1915:28:122017-4-19 15:28:12-----------------------null格式我是null-----------------------宏定义  页面写逻辑判断    8-----------------------    8this is 8------------------------include</body></html>
0 0
原创粉丝点击