FreeMarker入门之一:say hello world
这两天在学习FreeMarker,网上找了些资料来看,有部分代码本身存在一定的错误!整理了一下,然后发布到这里,也是在学习道路上留下一个轻轻的脚印!1. 新建web工程
2. 下载并导入最新的freemarker.jar
3. 在WEB-INF下新建文件夹templates
4. 在templates下新建test.ftl文件,修改其内容为:
<html><head> <title>Hello Word</title> </head> <body> <h3>${message},${name}</h3> </body></html>
5. 新建Servlet,内容如下:
package com.njy.freemarker.servlet;import java.io.IOException;import java.io.Writer;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import freemarker.template.Configuration;import freemarker.template.Template;import freemarker.template.TemplateException;public class HelloFreeMarker extends HttpServlet {public HelloFreeMarker() {super();}//负责管理FreeMarker模板的Configuration实例private Configuration cfg = null; public void init() throws ServletException {//创建一个FreeMarker实例cfg = new Configuration();//指定FreeMarker模板文件的位置cfg.setServletContextForTemplateLoading(getServletContext(),"/WEB-INF/templates");}public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//建立数据模型Map root = new HashMap();root.put("message", "hello world");root.put("name", "聂靖宇");root.put("personList", list);//获取模板文件Template t = cfg.getTemplate("test.ftl");//开始准备生成输出//- 使用模板文件的Charset作为本页面的charset//- 使用text/html MIME-typeresponse.setContentType("text/html; charset=" + t.getEncoding());Writer out = response.getWriter();//合并数据模型和模板,并将结果输出到out中try {t.process(root, out); // 往模板里写数据} catch (TemplateException e) {e.printStackTrace();}}public void destroy() {super.destroy(); }}
6. 运行http://localhost:8080/freemarker_hell/hello,页面效果如下如所示:
http://www.agoit.com/upload/attachment/92355/004c9b12-5035-3d60-8f0f-b3ebb7739140.jpg
页:
[1]