freemarker入门实例

1、设计思路

(1)新建Maven Project

(2)生成freemarker模板

(3)写freemarker页面ftl文件

(4)写测试文件

2、新建Maven Project



3、生成freemarker模板

FreemarkerTemplate.java:

/**
 * @Title:FreemarkerTemplate.java
 * @Package:com.you.freemarker
 * @Description:freemarker模板
 * @author:Youhaidong(游海东)
 * @date:2014-5-25 下午11:18:00
 * @version V1.0
 */
package com.you.freemarker;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

/**
 * 类功能说明
 * 类修改者 修改日期
 * 修改说明
 * <p>Title:FreemarkerTemplate.java</p>
 * <p>Description:游海东个人开发</p>
 * <p>Copyright:Copyright(c)2013</p>
 * @author:游海东
 * @date:2014-5-25 下午11:18:00
 * @version V1.0
 */
public class FreemarkerTemplate
{
	  /**
	   * 生成freemarker模板文件
	   * @Title:getTemplate
	   * @Description:
	   * @param:@param name
	   * @param:@return
	   * @return:Template
	   * @throws
	   */
      public Template getTemplate(String name)
      {
    	  try
    	  {
    		  //通过FreeMarker的Configuration读取相应的FTL
    		  Configuration conf = new Configuration();
    		  //设置去哪里读取相应的ftl模板文件
        	  conf.setClassForTemplateLoading(this.getClass(), "/com/you/ftl");
        	  //在模板文件目录中找到名称为name的文件
        	  Template temp = conf.getTemplate(name);
        	  return temp;
		  }
    	  catch (IOException e)
		  {
			  e.printStackTrace();
		  }
		return null;
      }

      /**
       * 将结果输出到控制台
       * @Title:printFtl
       * @Description:
       * @param:@param name
       * @param:@param root
       * @return: void
       * @throws
       */
      public void printFtl(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();
		  }
      }
}

4、写freemarker页面ftl文件

user.ftl:

姓名:${username}
年龄:${age}
性别:${sex}

5、写测试文件

FreemarkerTest.java:

/**
 * @Title:FreemarkerTest.java
 * @Package:com.you.test.freemarker
 * @Description:Freemarker测试
 * @author:Youhaidong(游海东)
 * @date:2014-5-25 下午11:32:15
 * @version V1.0
 */
package com.you.test.freemarker;

import java.util.HashMap;
import java.util.Map;

import org.junit.Before;
import org.junit.Test;

import com.you.freemarker.FreemarkerTemplate;

/**
 * 类功能说明
 * 类修改者 修改日期
 * 修改说明
 * <p>Title:FreemarkerTest.java</p>
 * <p>Description:游海东个人开发</p>
 * <p>Copyright:Copyright(c)2013</p>
 * @author:游海东
 * @date:2014-5-25 下午11:32:15
 * @version V1.0
 */
public class FreemarkerTest
{
	FreemarkerTemplate ft;

	/**
	 *
	 * @Title:buildUp
	 * @Description:实例化对象
	 * @param:
	 * @return: void
	 * @throws
	 */
	@Before
	public void buildUp()
	{
		ft = new FreemarkerTemplate();
	}

	/**
	 *
	 * @Title:testFreemarker
	 * @Description:测试结果
	 * @param:
	 * @return: void
	 * @throws
	 */
	@Test
	public void testFreemarker()
	{
		//创建数据模型
		Map<String,Object> root = new HashMap<String,Object>();
		//为数据模型添加值
		root.put("username", "张三");
		root.put("age", "22");
		root.put("sex", "男");
		//将数据模型和模板中的数据输出到控制台
		ft.printFtl("user.ftl", root);
	}

}

6、测试结果

姓名:张三
年龄:22
性别:男

freemarker入门实例的更多相关文章

  1. freemarker入门实例与源码研究准备工作

    首先去freemarker官网下载源码jar包,本文是基于freemarker-2.3.21.tar.gz进行研究的.解压源码包,找到freemarker的源码部分导入eclipse工程中.需要注意的 ...

  2. React 入门实例教程(转载)

    本人转载自: React 入门实例教程

  3. struts入门实例

    入门实例 1  .下载struts-2.3.16.3-all  .不摆了.看哈就会下载了. 2  . 解压  后 找到 apps 文件夹. 3.    打开后将 struts2-blank.war   ...

  4. Vue.js2.0从入门到放弃---入门实例

    最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用 ...

  5. wxPython中文教程入门实例

    这篇文章主要为大家分享下python编程中有关wxPython的中文教程,分享一些wxPython入门实例,有需要的朋友参考下     wxPython中文教程入门实例 wx.Window 是一个基类 ...

  6. Omnet++ 4.0 入门实例教程

    http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...

  7. Spring中IoC的入门实例

    Spring中IoC的入门实例 Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用.这一章先从Spring的IoC开始.所谓IoC就是一个用XML来定义生成对象的模式,我们看看如 ...

  8. Node.js入门实例程序

    在使用Node.js创建实际“Hello, World!”应用程序之前,让我们看看Node.js的应用程序的部分.Node.js应用程序由以下三个重要组成部分: 导入需要模块: 我们使用require ...

  9. Java AIO 入门实例(转)

    Java7 AIO入门实例,首先是服务端实现: 服务端代码 SimpleServer: public class SimpleServer { public SimpleServer(int port ...

随机推荐

  1. VBoxManage命令速记

    1.IDE控制器创建:VBoxManage storagectl testvm --name "IDE Controller" --add ide卸载VBoxManage stor ...

  2. ansible playbook实践(一)-基础环境安装

    1 介绍 Ansible 是一个系统自动化工具,用来做系统配管理,批量对远程主机执行操作指令. 2 实验环境 ip 角色 192.168.40.71 ansible管控端 192.168.40.72 ...

  3. [LeetCode] 679. 24 Game(回溯法)

    传送门 Description You have 4 cards each containing a number from 1 to 9. You need to judge whether the ...

  4. JDBC【数据库连接池、DbUtils框架、分页】

    1.数据库连接池 什么是数据库连接池 简单来说:数据库连接池就是提供连接的... 为什么我们要使用数据库连接池 数据库的连接的建立和关闭是非常消耗资源的 频繁地打开.关闭连接造成系统性能低下 编写连接 ...

  5. sublime插件AndyJS2安装教程

    1.下载AndyJS2包,已整理上传,下载AndyJS2.rar,附上网址.(https://github.com/jiaoxueyan/AndyJS2) 2.点击首选项(preference)=&g ...

  6. php与web页面交互(二)

    一.获取表单数据 1.1 使用POST()方法提交表单  ---POST()方法可以没有限制地传递数据到服务器,所提交的数据在后台传输,用户在浏览器端是看不到这一过程的,安全性高,适用于发送保密数据和 ...

  7. LeetCode - 185. Department Top Three Salaries

    The Employee table holds all employees. Every employee has an Id, and there is also a column for the ...

  8. php扩展开发实战教程(1)

    我的开发环境: Ubuntu16.04 apt方式安装的php5.6, apache,mysql等 由于我的本机用的是apt方式安装的php,所以我这里从头开始用最精简的方式,编译安装一个php5.4 ...

  9. install atom markdown preview plus error

    Installing "markdown-preview-enhanced@0.15.2" failed.Hide output- npm ERR! Darwin 17.2.0 n ...

  10. MarkDown思考

    前言 使用MarkDown有一段时间了,感觉的确很方便.大大提高了工作效率,并带来了良好的工作体验.但是,一直以来我都有一个困惑,就是MarkDown的插件和编辑器纷繁无比,却通常各自有一套自己的实现 ...