知识点

相关文章

更多

最近更新

更多

FreeMarker入门教程

2019-03-03 21:19|来源: 领悟书生

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原创,转载请注明出处

相关问答

更多
  • 去慕课网吧,哪里全方面开放不收一费用的。我之前也是在那边学习的,说实话挺不错的学习平台。 加油 加油!
  • 用迅雷或快车下载,自己选择吧。 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=
  • unix入门教程[2022-06-22]

    UNIX初级教程http://download.chinaitlab.com/system/files/11060.html 适合初学者
  • QBASIC入门教程[2022-07-25]

    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基于微软稍早推出的QuickB ...
  • 思科入门教程[2022-10-17]

    内部教程安装包4个,要的话请说邮箱地址~
  • 想学魔方吗?为了少走弯路,请看我总结的教程,专为初学者,给你最简单的方法。 http://hi.baidu.com/dlydhr/blog/item/3131abcc9556fe1900e928e1.html 不解之处请在评论中提出,楼上的网站尽在收录中。
  • 学PS可以选择千锋,这里有很多学习视 频!
  • 日语入门教程ppt[2022-08-05]

    ()日语五十音图•あ段い段う段え段お段あ行あアaいイiうウuえエeおオoか行かカkaきキkiくクkuけケkeこコko。。。。日语入门教程文档信息转贴至开心网豆瓣网。。。 日语入门教程ppt:
  • delphi入门教程。[2022-04-14]

    帮你找了几个,看看吧,下载的时候要是不能直接下,就用迅雷等下载 洪恩编程之道 delphi7-视频教程 http://znccw.com/Article/pc/biancheng/200703/2267.html Delphi 2005 视频教程 设计师版 http://znccw.com/Article/pc/biancheng/200703/2266.html Delphi经典编程入门 电子书 http://znccw.com/Article/pc/biancheng/200703/2240.html ...
  • ios APP开发教程网上很多,但是都比较零散,我之前学习的时候是对比了几个网站,在麦子学院上面看的,还比较全面,分类很合理