首页 > 技术文章 > java工程中使用freemarker例子

Jeremy2001 2016-12-15 16:56 原文

新建java project,引入freemarker.jar, 本工程是用的版本:freemarker-2.3.20 版本

java工程目录如下:

test.ftl文件

HTML代码

1 name : ${name}  
2 age : ${age}  

Java代码

 1 package com.freemarker;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 import java.io.OutputStreamWriter;
 6 import java.io.Writer;
 7 import java.util.HashMap;
 8 import java.util.Map;
 9 
10 import freemarker.template.Configuration;
11 import freemarker.template.Template;
12 import freemarker.template.TemplateException;
13 
14 public class Test {
15     public static void main(String[] args) throws IOException, TemplateException {
16 
17         //1.创建配置实例Cofiguration
18         Configuration cfg = new Configuration();
19 
20         //2.设置模板文件目录
21         //(1)src目录下的目录(template在src下)
22         //cfg.setDirectoryForTemplateLoading(new File("src/template"));
23         //(2)完整路径(template在src下)
24         //cfg.setDirectoryForTemplateLoading(new File(
25         //      "D:/cpic-env/workspace/javaFreemarker/src/template"));
26         //cfg.setDirectoryForTemplateLoading(new File("src/template"));
27         //(3)工程目录下的目录(template/main在工程下)--推荐
28         cfg.setDirectoryForTemplateLoading(new File("template/main"));
29         //cfg.setObjectWrapper(new DefaultObjectWrapper());
30         //获取模板(template)
31         Template template = cfg.getTemplate("test.ftl");
32         //建立数据模型(Map)
33         Map<String, String> root = new HashMap<String, String>();
34         root.put("name", "cxl");
35         root.put("age", "25");
36         //获取输出流(指定到控制台(标准输出))
37         Writer out = new OutputStreamWriter(System.out);
38         //StringWriter out = new StringWriter();
39         //System.out.println(out.toString());
40         //数据与模板合并(数据+模板=输出)
41         template.process(root, out);
42         out.flush();
43     }
44 }

运行结果:

java代码

name : cxl  
age : 25  

 

推荐阅读