Freemarker入门示例

Freemarker简单入门实例

1.下载jar包地址:http://freemarker.org/Freemarker入门示例

2.将下载的jar包导入到web工程中:

Freemarker入门示例

3.代码实现:

package cn.quietor.freemarker;

import java.io.File;
import java.io.IOException;
import java.io.Writer;
import java.util.HashMap;
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.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class MyFMServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //获取模版文件路径
        String templatePath = getServletContext().getRealPath("/WEB-INF/template");
        
        //设置模板引擎配置信息
        Configuration cfg = new Configuration();
        //加载模版文件
        cfg.setDirectoryForTemplateLoading(new File(templatePath));
        //设置对象包装器
        cfg.setObjectWrapper(new DefaultObjectWrapper());
        
        //获取一个模版文件对应的实例
        Template template = cfg.getTemplate("test.ftl");
        
        //创建数据模型
        Map<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put("user", "Jack");
        paramMap.put("age", 24);
        paramMap.put("birth", 1989);
        
        //将数据输出到浏览器中显示
        Writer writer = response.getWriter();
        try {
            template.process(paramMap, writer);
        } catch (TemplateException e) {
            System.out.println(e.getMessage());
        } finally {
            writer.close();
        }
    }

}

4.页面输出:

Freemarker入门示例

5.输出结果:

Freemarker入门示例

以上是freemarker在servlet中的简单实现!有什么问题希望大家多多指点。

你可能感兴趣的:(freemarker)