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