FreeMarker学习笔记
文章目录
⼀、概述
FreeMarker是⼀款模板引擎:即⼀种基于模板和要改变的数据,并⽤来⽣成输出⽂本(HTML⽹⻚,电⼦邮件,配置⽂件,源代码等)的通⽤⼯具。它不是⾯向最终⽤户的,⽽是⼀个Java类库,是⼀款程序员可以嵌⼊他们所开发产品的组件。
模板编写为 FTL (FreeMarker Template Language)。
设计思想:模板 + 数据 —> ⽂本输出
官网:https://freemarker.apache.org/
FreeMarker可以用于实现页面静态化。
页面静态化:即将页面的内容以静态文件的方式进行展示输出。
静态页面(如:.html,.js,.css文件);直接响应给浏览器
动态页面:(如:.jsp文件)。运行机制:.jsp–>.java–>.class—>响应浏览器
静态页面的访问速度最快。
⼆、第⼀个Freemarker程序
Maven依赖jar
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
创建模板
创建一个FreeMarker的模板index.ftl(后缀名也可以是.html,官方推荐.ftl后缀)
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<body>
<h1>您好:${name}</h1>
</body>
</html>
注:${name} 是freemarker的取值表达式
准备数据 并根据模板⽣成静态⻚
package com.demo.freemarker;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class FreemarkerTest {
public static void main(String[] args) throws IOException, TemplateException {
// 1. 准备数据
Map<String,Object> dataMap = new H