freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)

摘要:
1.Freemark环境构建导入依赖<dependency><groupId>org。freemarkerfreemarker2.3.16创建freemarker。html˂!

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文件)

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第1张

 (5)项目结构

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第2张

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

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)测试

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第3张

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)测试

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第4张

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)测试

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第5张

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)测试

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第6张

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)测试

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第7张

7、在模板中进行赋值

(1)取标签数据

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

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第8张

 (2)取后台数据

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

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第9张

 (3)集合

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

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第10张

 (4)条件

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

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第11张

8、时间

(1)time格式

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

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第12张

 freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第13张

 (2)datetime格式

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

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第14张

9、对象

存入数据:

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

模板:

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

生成的html:

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第15张

 10、宏定义

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

freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)第16张

免责声明:文章转载自《freemarker:初识(搭建环境、对象、集合、索引、赋值、null、时间、宏定义)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WRF rsl.out文件研究js 过滤数组里对象的某个属性下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jqmobi插件制作(翻译)

应用程序框架插件是可重用的代码,以帮助增强您的应用程序的peices。它们可以被用来执行琐碎的任务,或者创建复杂的UI小部件。有两种类型的插件,你可以创建。实用插件,不采取行动的对象插件作用于一个桶/元素如果你有一个预先存在的jQuery插件,使用的功能我们实现,你的代码应该是相当容易移植。大多数情况下,你只是需要更改参考在IIFE中,从“jQuery的”...

linux nfs服务配置挂载以及oracle使用nfs存储挂载注意事项

服务端共享目录 /home/XXX/nfs_shared 172.16.22.0/24(rw,no_root_squash) service nfs restart 常用命令: 查看所有nfs共享目录: # exportfs -arv exporting 172.16.22.0/24:/tmp exporting 172.16.22.0/24:/hom...

安装phpldapadmin

1. 安装软件 [root@ ~]# yum -y install epel-release [root@ ~]# yum install -y phpldapadmin 2. 配置phpldapadmin [root@ ~]# vi /etc/httpd/conf.d/phpldapadmin.conf # # Web-based tool for...

crontab 定时备份 出现permission:denied

主要原因是第一天晚上没有进入到Mac的root权限,所以一直就是权限不足。 今天我会了进入Mac root权限了,我一试就好了。 contab 定时命令: * * * * * /bin/sh /Users/wky/Desktop/backup.sh > /Users/wky/Desktop/backup.txt 2&> 1 这个是每分钟...

CENTOS7静默安装ORACLE11G及数据泵迁移

2021年2月4日江苏淮安特钢 CENTOS7静默安装ORACLE11G及数据泵迁移 作者:查小广(北京红河谷时代信息技术有限公司) 检化验系统LIMS 数据库迁移 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production lims数据库oracle:192.168.20....

shell中的dd命令使用详解

一、dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2 参数注释: 1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file > 2. of=文件名:输出文件名,缺省为标准输出。即指...