include指令和jsp中的include指令意思是差不多的,include可以在模版中插入其他的静态文件,或者是freemarker模版,这里通常引入的都是项目的公共部分,比如说网站的头部,以及版权信息,在下面的例子中使用的是引入模版,至于引入静态内容那就的自己试了,太简单了.
这这几篇中例子很简单,内容也很少,因为写的太多自己都不想看.所以用几个简单的示例先了解freemarker的最常用的一些指令.
项目结构:
Test.java
package org.freemarker.test;
import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class Test {
public static void main(String[] args) throws IOException,
TemplateException {
Configuration cfg = new Configuration();
// 指定模板文件从何处加载的数据源,这里设置成一个文件目录。
cfg.setDirectoryForTemplateLoading(new File("./template"));
// 指定模板如何检索数据模型,这是一个高级的主题了…
// 但先可以这么来用:
cfg.setObjectWrapper(new DefaultObjectWrapper());
// 创建根哈希表
Map<String,Object> root = new HashMap<String,Object>();
//添加一个用户信息到hash表中
root.put("userName", "admin");
// 从配置Configuration对象中获取模版
Template temp = cfg.getTemplate("include.ftl");
Writer out = new OutputStreamWriter(System.out);
temp.process(root, out);
out.flush();
out.close();
}
}
<#--
下面的header.ftl路径这样写,必须是在同一目录下的.
-->
<#include "header.ftl"/>
.....其他内容信息...
header.ftl
上午好,尊敬的${userName}用户!
最终输出结果:
上午好,尊敬的admin用户!
.....其他内容信息...