我是靠谱客的博主 开放啤酒,最近开发中收集的这篇文章主要介绍使用FreeMarker将数据模型中的值合并到模板文件中,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

步骤如下:

①创建Configuration实例,该实例负责管理FreeMarker的模板加载路径,负责生成模板实例。

②使用Configuration实例来生成Template实例,同时需要指定使用的模板文件。

③填充数据模型,数据模型就是一个Map对象。

④调用Template实例的process方法完成合并。

 

根据上面步骤,下面提供一个使用FreeMarker创建输出的Java程序,该程序代码如下:

public class HelloFreeMarker

{

    //负责管理FreeMarker模板文件的Configuration实例

    private Configuration cfg;

    //负责初始化Configuration实例的方法

    public void init() throws Exception

    {

        //初始化FreeMarker配置

        //创建一个Configuration实例

        cfg = new Configuration();

        //设置FreeMarker的模板文件位置

        cfg.setDirectoryForTemplateLoading(new File("templates"));

    }

    //处理合并的方法

    public void process() throws Exception

    {

        //创建数据模型

        Map root = new HashMap();

        root.put("name", "FreeMarker!");

        root.put("msg", "您已经完成了第一个FreeMarker的实例!");

        //使用Configuration实例来加载指定模板

        Template t = cfg.getTemplate("test.flt");

        //处理合并

        t.process(root, new OutputStreamWriter(System.out));

    }

    public static void main(String[] args) throws Exception

    {

        HelloFreeMarker hf = new HelloFreeMarker();

        hf.init();

        hf.process();

    }

}

上面代码创建了一个Map实例root,这个root将作为模板文件的数据模型,在该数据模型中存储了两个

key-value对,其中第一个是name,第二个是msg,这两个key都有对应的value,这两个value将会填充到模板中对应的插值处。

虽然FreeMarker可以在Java中使用,但大部分时候FreeMarker都用于生成HTML页面。

 

 servlet合并模板和数据模型:

下面介绍在Web应用中使用FreeMarker,用Servlet来合并模板和数据模型,下面是Servlet应用中的代码:

public class HelloServlet extends HttpServlet

{

    //负责管理FreeMarker模板文件的Configuration实例

    private Configuration cfg;

    //负责初始化Configuration实例的方法

    public void init() throws Exception

    {

        //初始化FreeMarker配置

        //创建一个Configuration实例

        cfg = new Configuration();

        //设置FreeMarker的模板文件位置

        cfg.setServletContextForTemplateLoading(getServletContext(), "WEB-INF/templates");

    }

    //生成用户响应

    public void service(HttpServletRequest request, HttpServletResponse response) throws

    ServletException, IOException

    {

        //创建数据模型

        Map root = new HashMap();

        root.put("message", "Hello FreeMarker!");

        //使用Configuration实例来加载指定模板,即:取得模板文件

        Template t = cfg.getTemplate("test.flt");

        //开始准备生成输出

        //使用模板文件的charset作为本页面的charset

        //使用text/html,MIME-type

        response.setContentType("text/html; charset=" + t.getEncoding());

        Writer out = response.getWriter();

        //合并数据模型和模板,并将结果输出到out中

        try

        {

            t.process(root, out);

        }

        catch(TemplateException e)

        {

            throw new ServletException("处理Template模板中出现的错误", e);

        }

    }

}


最后

以上就是开放啤酒为你收集整理的使用FreeMarker将数据模型中的值合并到模板文件中的全部内容,希望文章能够帮你解决使用FreeMarker将数据模型中的值合并到模板文件中所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部