FreeMarker入门教程

2012-12-03|来源: 黄奕能

Java模板引擎 FreeMarker介绍中,我们已经对freemarker有了一定的了解,这一节是FreeMarker入门教程


下载freemarker

http://freemarker.sourceforge.net/freemarkerdownload.html

项目文件:freemarker-2.3.19.tar.gz

中文文档:FreeMarker_Manual_zh_CN.pdf

解压后把freemarker.jar加到classpath中即可完成环境的配置


定义模板文件

我们创建两个模板文件,一个是纯文本的模板文件,另一个是HTML格式的模板文件,主要是为了说明,freemarker的模板文件可以是任何格式的

01.ftl

你好:${username}

02.ftl

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>${username}</h1>
</body>
</html>


创建freemarker工具类

这个类,主要是获取模板定义文件,并根据输入的数据输出到控制台和文件中

package com.naxsu.freemarker;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class FreemarkerUtil {
    /**
     * 获取模板
     * @param name
     * @return
     */
    public Template getTemplate(String name) {
    try {
        //通过Freemaker的Configuration读取相应的ftl
        Configuration cfg = new Configuration();
        //设定去哪里读取相应的ftl模板文件
        cfg.setClassForTemplateLoading(this.getClass(),"/ftl");
        //在模板文件目录中找到名称为name的文件
        Template temp = cfg.getTemplate(name);
        return temp;
    } catch (IOException e) {
        e.printStackTrace();
    }
    return null;
    }
    /**
     * 输出到控制台
     * @param name 模板文件名
     * @param root 
     */
    public void print(String name,Map<String,Object> root) {
        try {
            //通过Template可以将模板文件输出到相应的流
        Template temp = this.getTemplate(name);
        temp.process(root, new PrintWriter(System.out));
    } catch (TemplateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    }
    /**
     * 输出到文件
     * @param name
     * @param root
     * @param outFile
     */
    public void fprint(String name,Map<String,
                       Object> root,String outFile) {
    FileWriter out = null;
    try {
            //通过一个文件输出流,就可以写到相应的文件中
        out = new FileWriter(
                      new File("E:\\freemarker\\ftl\\"+outFile));
        Template temp = this.getTemplate(name);
        temp.process(root, out);
    } catch (IOException e) {
        e.printStackTrace();
    } catch (TemplateException e) {
        e.printStackTrace();
    } finally {
        try {
        if(out!=null) out.close();
        } catch (IOException e) {
        e.printStackTrace();
        }
    }
    }
}


模拟数据,进行测试

public class TestFreemarker {
    FreemarkerUtil fu;
    Map<String,Object> root = null;
    @Before
    public void setUp() {
        fu = new FreemarkerUtil();
        root = new HashMap<String,Object>();
    }
    @Test
    public void test01() {
        //1、创建数据模型
        Map<String,Object> root = new HashMap<String,Object>();
        //2、为数据模型添加值
        root.put("username", "张三");
        //3、将数据模型和模板组合的数据输出到控制台
        fu.print("01.ftl", root);
        fu.fprint("02.ftl", root, "01.html");
    }
}

好了,helloword到此为止,简单入门就是如此简单


本文链接:FreeMarker入门教程,本文由huangyineng原创,转载请注明出处

相关问答

更多

java入门教程下载

java的入门教程

premiere视频入门教程下载?

用迅雷或快车下载,自己选择吧。 http://www.verycd.com/search/folders?field=&kw=premiere&rev=true&q=&from=&c2=0&range=&catalog=%E8%B5%84%E6%96%99&status=all&sort=

思科入门教程

内部教程安装包4个,要的话请说邮箱地址~

unix入门教程

UNIX初级教程http://download.chinaitlab.com/system/files/11060.html 适合初学者

QBASIC入门教程

qbasicQBASIC QBASIC是BASIC(Beginner's All-purpose Symbolic Instruction Code,初学者通用指令代码)语言的一个变种,由美国微软公司开发,1991年随MS-DOS 5.0推出。它不能被编译成独立的可执行文件,源代码在集成开发环境(IDE)中先被编译成中间代码,然后中间代码在IDE中被解释执行。它被设计用来代替GW-BASIC,并被集成在MS-DOS 5.0及其更高版本(包括Windows 95)中。QBASIC基于微软稍早推出的Q ...

专题教程

JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征
Gson教程
快速了解 jdk8 新特征

相关文章

更多

最近更新

更多