俗话说万事开头难,这句话对于我们程序员来说非常的适用,刚接触一门新的东西,在初步了解了一些基本的东西后,都像找点东西练练手,找点熟悉的感觉。而我最近的两年多的时间一直在从事Eclipse插件的工作,对Web 应用开发接触比较少,发现只有C/S开发的经验想换个工作环境比较困难。所以觉得学习一下Web的开发知识对自己比较有好处。
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序,关于FreeMarker的更多的介绍,可以访问它的主页或者在百度百科中搜索相关的词条(点这里).
首先新建一个Java工程,比如FreeMarkerTest,将FreeMarker的jar包添加至工程的构建路径中,然后新建一个文件夹template存放模板文件的,下面是我们的模板的内容,名称为“test.ftl":
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome ${user}!</h1>
<p>Our latest product:
<a href="${latestProduct.url}">${latestProduct.name} </a>!
</body>
</html>
在新建一个Java类,名称为FreeMarkerTest.java:
package test;
import freemarker.template.*;
import java.util.*;
import java.io.*;
public class FreeMarkerTest {
public static void main(String[] args) throws Exception {
/* 创建配置 */
Configuration cfg = new Configuration();
/* 指定模板存放的路径*/
cfg.setDirectoryForTemplateLoading(new File("template"));
cfg.setObjectWrapper(new DefaultObjectWrapper());
/* 从上面指定的模板目录中加载对应的模板文件*/
Template temp = cfg.getTemplate("test.ftl");
/* 创建数据模型 */
Map root = new HashMap();
root.put("user", "Big Joe");
Map latest = new HashMap();
root.put("latestProduct", latest);
latest.put("url", "products/greenmouse.html");
latest.put("name", "green mouse");
/* 将生成的内容打印到控制台中 */
Writer out = new OutputStreamWriter(System.out);
temp.process(root, out);
out.flush();
}
}
这样就可以了,运行后在控制台可以打印:
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome Big Joe!</h1>
<p>Our latest product:
<a href="products/greenmouse.html">green mouse</a>!
</body>
</html>