一、环境配置
1.新建一个普通的java项目
2.导入freemarker的jar包 freemarker-2.3.25-incubating.jar
3.结构如图:
二、建立模板test.ftlh
<html>
<head>
<title>欢迎!</title>
</head>
<body>
<h1>欢迎您--》 ${user}!</h1>
<p>Our latest product:
<a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>
三、配置一个实体类
public class Product {
private String url;
private String name;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
四、编写主要代码
/**
* @param args
* @throws IOException
* @throws TemplateException
*/
public static void main(String[] args) throws Exception {
/*创建一个单例的配置对象,在整个应用的生命周期中应该只有一个 */
Configuration cfg = new Configuration(Configuration.VERSION_2_3_25);
cfg.setDirectoryForTemplateLoading(new File("src/main/java/"));
cfg.setDefaultEncoding("UTF-8");
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
cfg.setLogTemplateExceptions(false);
/* 能多次使用的-创建数据模型 */
Map<String,Object> root = new HashMap<String,Object>();
root.put("user", "java开发者");
Product latest = new Product();
latest.setUrl("www.freemarker.com");
latest.setName("一个简单的freemarker案例");
root.put("latestProduct", latest);
/* 获取模板--内部会缓存 */
Template temp = cfg.getTemplate("test.ftlh");
/*合并数据模型和模板(将数据写入模板) 这里写到控制台 */
Writer out = new OutputStreamWriter(System.out);
temp.process(root, out);
//刷数据,关闭流
out.flush();
out.close();
}
五、运行观察结果
<html>
<head>
<title>欢迎!</title>
</head>
<body>
<h1>欢迎您--》 java开发者!</h1>
<p>Our latest product:
<a href="www.freemarker.com">一个简单的freemarker案例</a>!
</body>
</html>
在本案例中,我们直接把模板和数据结合后生成的html输出到控制台上了,如果再web项目中当然就是从response中输出到页面,这样用户就能通过浏览器看到漂亮的页面啦。这里只是简单的freemarker的使用,具体深入参考官网文档。