FreeMarker 是什么?
FreeMarker 是一款模板引擎。 也就是结合模板和数据, 用来产生输出文本的工具, 输出的文本格式包括: HTML网页、电子右键,源码等等。
FreeMarker 是一个Java的类库,其定义了一套简单的模板语言的语法。
FreeMarker 完全免费。
FreeMarker 能干什么?
- 最典型的在Java MVC架构中用来作为视图层的显示组件,替代JSTL(JSP标准标签库)。在Spring Boot等框架中提供了很好的集成。
- 作为复杂email 的模板引擎。
- …
快速示例步骤
这里使用Maven 创建与管理项目。本篇使用 JUnit 5 进行测试。
项目结构如下图:
- pom.xml 导入FreeMarker依赖
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
- 在src/test/resource下 创建freemarker 目录, 并编写模板文件 my.ftl, 模板文件的内容如下:
Welcome ${user}
- 在src/test/java 下的包中创建测试类FreeMarkTests, 内容如下:
public class FreeMarkTests {
@Test
public void test() throws Exception {
Configuration cfg = new Configuration(Configuration.VERSION_2_3_31);//设置配置版本
cfg.setDefaultEncoding("UTF-8");//设置字符集
cfg.setDirectoryForTemplateLoading(new File(FreeMarkTests.class.getResource("/").getPath()+"/freemarker")); //设置模板文件目录
Map<String,Object> root = new HashMap<String,Object>(); // 设置数据
root.put("user", "oscar");
Template t = cfg.getTemplate("my.ftl"); // 使用模板文件创建模板对象
Writer out = new OutputStreamWriter(System.out, "UTF-8"); //控制台输出流对象
t.process(root, out); //模板结合数据 , 输出到控制台
}
}
以上目录结构和运行结果如下图:
补充
在Eclipse 中开发FreeMaker 模板时, 可以安装FreeMarker的插件进行开发。比如“FreeMarker IDE”, 安装方式就是在插件市场搜索之后, 点击安装就可以了, 如下图:
安装插件后使用 ftl 编辑器打开之后的效果如下: