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. libGDX-wiki发布

    为方便大家学习和访问,我将libgdx的wiki爬取到doku-wiki下,专门建立了以下地址.欢迎大家来共同完善. http://wiki.v5ent.com

  2. 如何让oracle DB、监听和oem开机启动(dbstart)

    如何让oracle DB.监听和oem开机启动(dbstart) 让oracle DB.监听和oem开机启动(dbstart) Oracle提供了伴随操作系统自动重启的功能,在Windows中,可以修 ...

  3. HTML 5.2 新特性介绍

    本文译自 What's New in HTML 5.2? 作者 Ire Aderinokun,是一位前端开发者和 UI 设计师. 就在不到一个月之前,HTML 5.2 成为了 W3C 的官方推荐规范( ...

  4. shell实现centos7双网卡修改网卡名eth0,eth1,并设置网络

    #!/bin/bash interface1=`ls /sys/class/net|grep en|awk 'NR==1{print}'` interface2=`ls /sys/class/net| ...

  5. Linux下配置SNAT上网

    局域网有一台主机A,没有公网的IP, 也就是没有办法直接连到互联网上下载东西,同时内网有另外一台主机B,有公网接入.这个时候为了让A连接到互联网,我把B设置成NAT主机,A的网关指向B.准确的来说,现 ...

  6. Swift iOS 日期操作:NSDate、NSDateFormatter

    1.日期(NSDate) // 1.初始化 // 初始化一个当前时刻对象 var now = NSDate() // 初始化一个明天当前时刻对象 var tomorrow = NSDate(timeI ...

  7. linux服务器ssh、公匙和密钥实战详解

    一..我们先建好一上haiwen用户用来,做为密码钥和SSH对像 二.修改vi /etc/ssh/sshd_config 文件,禁用ROOT远程直接登录. 三.ssh的公钥认证配置,只能用密匙才能登录 ...

  8. CENTOS6.6 下mysql MHA架构搭建

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 本篇是自己搭建的一篇mysql MHA文章 前面的安装步骤基 ...

  9. CENTOS6.6下zabbix2.4.7搭建

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 安装依赖 安装Perl .apr / apr-util yum -y ...

  10. 如何在CentOS 7上部署Google BBR【搬运、机翻】

    如何在CentOS 7上部署Google BBR 本文章搬运自 https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7 [注:文 ...