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