FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,关于它的优缺点,网上有很多人在讨论,以前用过FreeMarker,但是是在ofbiz中使用的,今天尝试了下在servlet环境中使用,没想到还挺简单的,没有想象中那么复杂,下面实现一个hello world示例
1、首先,将freemarker的jar包加到web工程的lib目录中,
2、在WEB-INF文件夹下新建一个文件,取名hello.ftl,当然,你可以随便取名,在ftl文件中写上${message}就可以了
3、新建一个FreeMarkerServlet,在FreeMarkerServlet中使用freemarker,代码如下:
//实例化一个FreeMaker模板的Configuration实例
Configuration cfg = new Configuration();
//设置FreeMaker的位置
cfg.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/");
//建立数据模型
Map rootMap = new HashMap();
rootMap.put("message", "hello world");
//取得模板文件
Template t = cfg.getTemplate("hello.ftl");
//使用模板文件编码作为页面编码
response.setContentType("text/html;charset=" + t.getEncoding());
PrintWriter out = response.getWriter();
try {
//合并模板和数据模型,并输出到out中
t.process(rootMap, out);
} catch (TemplateException e) {
e.printStackTrace();
}
4、部署到tomcat中,启动tomcat
然后在浏览器地址栏中输入http://localhost:8081/FreeMarker/servlet/FreeMarkerServlet
好了,你就可以看到页面显示的结果了
hello world