freemarker应用

来源:互联网 发布:不出门而知天下事 编辑:程序博客网 时间:2024/05/10 13:54

前提条件:

在WEB-INF下建立templates文件夹,存放模板文件

首先建立index.tpl文件

<html><body>${message}</body></html>

下面是加载freemarker进行模板渲染输出

package main;import java.io.IOException;import java.io.Writer;import java.util.HashMap;import java.util.Locale;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;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;/** * Servlet implementation class Hello */@WebServlet("/Hello")public class Hello extends HttpServlet {private static final long serialVersionUID = 1L;    private Configuration cfg = null;    @Override    public void init(){    //初始化freemarker环境    cfg = new Configuration();        //加载模板    cfg.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/templates");        //设置模板更新时间,本地调试时设置为0    cfg.setTemplateUpdateDelay(0);        //设置默认输出字符集    cfg.setOutputEncoding("UTF-8");    }        public Hello() {        super();        // TODO Auto-generated constructor stub    }protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Template t = cfg.getTemplate("index.tpl");response.setContentType("text/html; charset=" + cfg.getOutputEncoding());Writer out = response.getWriter();Map root = new HashMap();root.put("message", "hello world!");try {t.process(root, out);} catch (TemplateException e) {e.printStackTrace();}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}}