freemarker入门实例
假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击http://106.12.206.16:8080/qingruihappy/index.html
1、设计思路
(1)新建Maven Project
(2)生成freemarker模板
(3)写freemarker页面ftl文件
(4)写测试文件
2、新建Maven Project
3、生成freemarker模板
FreemarkerTemplate.java:
1 /** 2 * @Title:FreemarkerTemplate.java 3 * @Package:com.you.freemarker 4 * @Description:freemarker模板 5 * @author:Youhaidong(游海东) 6 * @date:2014-5-25 下午11:18:00 7 * @version V1.0 8 */ 9 package com.you.freemarker; 10 11 import java.io.IOException; 12 import java.io.PrintWriter; 13 import java.util.Map; 14 15 import freemarker.template.Configuration; 16 import freemarker.template.Template; 17 import freemarker.template.TemplateException; 18 19 /** 20 * 类功能说明 21 * 类修改者 修改日期 22 * 修改说明 23 * <p>Title:FreemarkerTemplate.java</p> 24 * <p>Description:游海东个人开发</p> 25 * <p>Copyright:Copyright(c)2013</p> 26 * @author:游海东 27 * @date:2014-5-25 下午11:18:00 28 * @version V1.0 29 */ 30 public class FreemarkerTemplate 31 { 32 /** 33 * 生成freemarker模板文件 34 * @Title:getTemplate 35 * @Description: 36 * @param:@param name 37 * @param:@return 38 * @return:Template 39 * @throws 40 */ 41 public Template getTemplate(String name) 42 { 43 try 44 { 45 //通过FreeMarker的Configuration读取相应的FTL 46 Configuration conf = new Configuration(); 47 //设置去哪里读取相应的ftl模板文件 48 conf.setClassForTemplateLoading(this.getClass(), "/com/you/ftl"); 49 //在模板文件目录中找到名称为name的文件 50 Template temp = conf.getTemplate(name); 51 return temp; 52 } 53 catch (IOException e) 54 { 55 e.printStackTrace(); 56 } 57 return null; 58 } 59 60 /** 61 * 将结果输出到控制台 62 * @Title:printFtl 63 * @Description: 64 * @param:@param name 65 * @param:@param root 66 * @return: void 67 * @throws 68 */ 69 public void printFtl(String name,Map<String,Object> root) 70 { 71 try 72 { 73 //通过Template可以将模板文件输出到相应的流 74 Template temp = this.getTemplate(name); 75 temp.process(root, new PrintWriter(System.out)); 76 } 77 catch (TemplateException e) 78 { 79 e.printStackTrace(); 80 } 81 catch (IOException e) 82 { 83 e.printStackTrace(); 84 } 85 } 86 }
4、写freemarker页面ftl文件
user.ftl:
1 姓名:${username} 2 年龄:${age} 3 性别:${sex}
5、写测试文件
FreemarkerTest.java:
1 /** 2 * @Title:FreemarkerTest.java 3 * @Package:com.you.test.freemarker 4 * @Description:Freemarker测试 5 * @author:Youhaidong(游海东) 6 * @date:2014-5-25 下午11:32:15 7 * @version V1.0 8 */ 9 package com.you.test.freemarker; 10 11 import java.util.HashMap; 12 import java.util.Map; 13 14 import org.junit.Before; 15 import org.junit.Test; 16 17 import com.you.freemarker.FreemarkerTemplate; 18 19 /** 20 * 类功能说明 21 * 类修改者 修改日期 22 * 修改说明 23 * <p>Title:FreemarkerTest.java</p> 24 * <p>Description:游海东个人开发</p> 25 * <p>Copyright:Copyright(c)2013</p> 26 * @author:游海东 27 * @date:2014-5-25 下午11:32:15 28 * @version V1.0 29 */ 30 public class FreemarkerTest 31 { 32 FreemarkerTemplate ft; 33 34 /** 35 * 36 * @Title:buildUp 37 * @Description:实例化对象 38 * @param: 39 * @return: void 40 * @throws 41 */ 42 @Before 43 public void buildUp() 44 { 45 ft = new FreemarkerTemplate(); 46 } 47 48 /** 49 * 50 * @Title:testFreemarker 51 * @Description:测试结果 52 * @param: 53 * @return: void 54 * @throws 55 */ 56 @Test 57 public void testFreemarker() 58 { 59 //创建数据模型 60 Map<String,Object> root = new HashMap<String,Object>(); 61 //为数据模型添加值 62 root.put("username", "张三"); 63 root.put("age", "22"); 64 root.put("sex", "男"); 65 //将数据模型和模板中的数据输出到控制台 66 ft.printFtl("user.ftl", root); 67 } 68 69 }
6、测试结果
1 姓名:张三 2 年龄:22 3 性别:男