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
性别:男

最新文章

  1. hdu 2066
  2. [转] spring @Entity @Table
  3. swift 枚举类型
  4. JAVA 子父类的特点
  5. POJ3352 Road Construction (双连通分量)
  6. Code Forces 711D Directed Roads
  7. Eclipse 打开时“发现了以元素&#39;d:skin&#39;”开头的无效内容。此处不应含有子元素(转)
  8. igmpproxy源码学习——igmpProxyInit()
  9. css小技巧,如何制作一个箭头符号
  10. html5 Canvas画图3:1px线条模糊问题
  11. 入坑以来最清晰的this指南[老哥们来交流指正]
  12. IIS发布网站浏览之后看到的是文件目录 &amp; Internal Server Error 处理程序“ExtensionlessUrlHandler-ISAPI-4.0_64bit”在其模块列表中有一个错误模块“IsapiModule” 解决方法 &amp; App_global.asax.pduxejp_.dll”--“拒绝访问。 ”
  13. NGINX详解
  14. reinterpret_cast,static_cast, dynamic_cast,const_cast的运用分析
  15. Android开发指南--0 总览
  16. Oracle保留小数点后两位的几种方法
  17. DWM1000 自动应答代码实现与实例
  18. TCP-IP详解笔记3
  19. NGUI与特效的层级关系
  20. IP、TCP、DNS协议

热门文章

  1. echarts中视觉映射器(visualMap)与时间轴(timeline)混用的实现方法
  2. Jsonp 原理简述
  3. salesforce零基础学习(八十六)Ajax Toolkit (VF页面中使用及javascript action使用)
  4. [Sdoi2017]硬币游戏 [高斯消元 KMP]
  5. 夏令营讲课内容整理Day 1.
  6. VScode离线安装插件
  7. 数据分析之pandas教程-----概念篇
  8. Google 搜索引擎语法
  9. JaveScript函数(JS知识点归纳六)
  10. 使用JS代码实现点击按钮下载文件