zoukankan      html  css  js  c++  java
  • freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)

    1、Freemarker环境搭建

    (1)导入依赖

    <dependency>
          <groupId>org.freemarker</groupId>
          <artifactId>freemarker</artifactId>
          <version>2.3.16</version>
        </dependency>

    (2)创建freemarker.html(模板文件)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    ${zhai}
    </body>
    </html>

    (3)创建测试类(数据模型)

    public class FMDemo {
        public static void main(String[] args) throws IOException, TemplateException {
            //配置对象
            Configuration configuration=new Configuration();
            //模板路径
            String dir="D:\IdeaProjects\Freemarker_01\ftl\";
            //导入模板目录
            configuration.setDirectoryForTemplateLoading(new File(dir));
            //获取模板
            Template template=configuration.getTemplate("freemarker.html");
            //数据
            Map root=new HashMap();
            root.put("zhai","hello");
            Writer out=new FileWriter(new File(dir)+"\hello.html");
            //生成开始
            template.process(root,out);
            //关闭资源
            out.close();
        }
    }

    (4)测试(生成的html文件)

     (5)项目结构

     是一个由模板文件和数据文件生成目标文件的过程

    2、对象

    (1)测试类

    public class FMDemo {
        public static void main(String[] args) throws IOException, TemplateException {
            //配置对象
            Configuration configuration=new Configuration();
            //模板路径
            String dir="D:\IdeaProjects\Freemarker_01\ftl\";
            //导入模板目录
            configuration.setDirectoryForTemplateLoading(new File(dir));
            //获取模板
            Template template=configuration.getTemplate("freemarker.html");
            //数据
            Map root=new HashMap();
            Student student=new Student();
            student.setSex("");
            student.setSname("zhai");
            root.put("student",student);
            Writer out=new FileWriter(new File(dir)+"\hello.html");
            //生成开始
            template.process(root,out);
            //关闭资源
            out.close();
        }
    }

    (2)freemarker.html

    <body>${student.sex}/////${student.sname}
    </body>

    (3)创建学生类

    public class Student {
        private String sname;
        private String sex;
        public String getSname() {
            return sname;
        }
    
        public void setSname(String sname) {
            this.sname = sname;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
    }

    (4)测试

    3、List集合

    (1)测试类

    public class FMDemo {
        public static void main(String[] args) throws IOException, TemplateException {
            //配置对象
            Configuration configuration=new Configuration();
            //模板路径
            String dir="D:\IdeaProjects\Freemarker_01\ftl\";
            //导入模板目录
            configuration.setDirectoryForTemplateLoading(new File(dir));
            //获取模板
            Template template=configuration.getTemplate("freemarker.html");
            //数据
            Map root=new HashMap();
            List students =new ArrayList<String>();
            students.add("zhang");
            students.add("zhai");
            students.add("ma");
            root.put("students",students);
            Writer out=new FileWriter(new File(dir)+"\hello.html");
            //生成开始
            template.process(root,out);
            //关闭资源
            out.close();
        }
    }

    (2)freemarker.html

    <body>
    <#list students as student>
       ${student}
    </#list>
    </body>

    (3)测试

    4、Map集合

    (1)创建Map集合

     Map root=new HashMap();
            Map map=new HashMap();
            map.put("z","zhai");
            map.put("l","liu");
            root.put("map",map);

    (2)freemarker.html

    <body>
    <#list map?keys as key>
       ${map[key]}
    </#list>
    </body>

    (3)测试

    5、List_map集合

    (1)测试类

     //获取模板
            Template template=configuration.getTemplate("freemarker.html");
            //数据
            Map root=new HashMap();
            List<Map> maps=new ArrayList<Map>();
            Map stu1=new HashMap();
            stu1.put("num1","zhai");
            stu1.put("num2","zhang");
            Map stu2=new HashMap();
            stu1.put("num3","ma");
            stu1.put("num4","zhao");
            maps.add(stu1);
            maps.add(stu2);
            root.put("maps",maps);
            Writer out=new FileWriter(new File(dir)+"\hello.html");

    (2)freemarker.html

    <#list maps as map>
        <#list map?keys as key>
            ${map[key]}
        </#list>
    </#list>

    (3)测试

    6、索引

    (1)测试类

     Map root=new HashMap();
            List students =new ArrayList<String>();
            students.add("zhang");
            students.add("zhai");
            students.add("ma");
            root.put("students",students);
            Writer out=new FileWriter(new File(dir)+"\hello.html");

    (2)freemarker.html

    <body>
    <#list students as student>
        ${student_index}
    </#list>
    </body>

    (3)测试

    7、在模板中进行赋值

    (1)取标签数据

    <body>
    <#assign x=0/>
    ${x}
    </body>

     (2)取后台数据

    <body>
    <#assign x='${zhai}'/>
    ${x}
    </body>

     (3)集合

    <body>
    <#assign x>
    <#list ["a","b","c"] as n>${n}</#list>
    </#assign>
    ${x}
    </body>

     (4)条件

    <#assign x>
    <#list ["a","b","c"] as n>
    <#if n!="a">
    ${n}
    </#if>
    </#list>
    </#assign>
    ${x}
    </body>

    8、时间

    (1)time格式

    <body>
    ${time?time}
    </body>

     

     (2)datetime格式

    <body>
    ${time?datetime}
    </body>

    9、对象

    存入数据:

      root.put("Student",new Student("zhai",12));

    模板:

    <body>
    ${Student.sname}
    </body>

    生成的html:

     10、宏定义

    <body>
    <#macro table pageNo>
    ${pageNo}
    </#macro>
    <@table pageNo=8/>
    </body>

  • 相关阅读:
    Atitit.随时间变色特效 ---包厢管理系统的规划
    Atitit.request http乱码的设计防止 检测与解决最近实践p825 attilax总结.doc
    Atitit.request http乱码的设计防止 检测与解决最近实践p825 attilax总结.doc
    atitit.薄伽梵歌overview  attilax 读后感
    Atitit。 《吠陀》 《梨俱吠陀》overview 经读后感  是印度上古时期一些文献的总称
    Atitit。 《吠陀》 《梨俱吠陀》overview 经读后感  是印度上古时期一些文献的总称
    atitit.薄伽梵歌overview  attilax 读后感
    Atitit 《摩奴法典》overivew 读后感 不是由国王 颁布的,而是 僧侣编制
    Atitit 《摩奴法典》overivew 读后感 不是由国王 颁布的,而是 僧侣编制
    Atitit.执行cli cmd的原理与调试
  • 原文地址:https://www.cnblogs.com/zhai1997/p/13391603.html
Copyright © 2011-2022 走看看