freemarker获取封装类中对象的属性
假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击http://106.12.206.16:8080/qingruihappy/index.html
1、设计思路
(1)封装学生类
(2)创建数据模型
(3)新建student.ftl
(4)运行Junit测试文件,生成HTML文件
2、封装学生类
Student.java:
1 /** 2 * @Title:Student.java 3 * @Package:com.you.freemarker.model 4 * @Description:学生类 5 * @author:Youhaidong(游海东) 6 * @date:2014-5-26 下午11:41:05 7 * @version V1.0 8 */ 9 package com.you.freemarker.model; 10 11 import java.io.Serializable; 12 import java.util.Date; 13 14 /** 15 * 类功能说明 16 * 类修改者 修改日期 17 * 修改说明 18 * <p>Title:Student.java</p> 19 * <p>Description:游海东个人开发</p> 20 * <p>Copyright:Copyright(c)2013</p> 21 * @author:游海东 22 * @date:2014-5-26 下午11:41:05 23 * @version V1.0 24 */ 25 public class Student implements Serializable 26 { 27 /** 28 * @Fields serialVersionUID:序列化 29 */ 30 private static final long serialVersionUID = 1L; 31 32 /** 33 * 学生姓名 34 */ 35 private String studentName; 36 37 /** 38 * 学生性别 39 */ 40 private String studentSex; 41 42 /** 43 * 学生年龄 44 */ 45 private int studentAge; 46 47 /** 48 * 学生生日 49 */ 50 private Date studentBirthday; 51 52 /** 53 * 学生地址 54 */ 55 private String studentAddr; 56 57 /** 58 * QQ 59 */ 60 private long studentQQ; 61 62 /** 63 * @return the studentName 64 */ 65 public String getStudentName() { 66 return studentName; 67 } 68 69 /** 70 * @param studentName the studentName to set 71 */ 72 public void setStudentName(String studentName) { 73 this.studentName = studentName; 74 } 75 76 /** 77 * @return the studentSex 78 */ 79 public String getStudentSex() { 80 return studentSex; 81 } 82 83 /** 84 * @param studentSex the studentSex to set 85 */ 86 public void setStudentSex(String studentSex) { 87 this.studentSex = studentSex; 88 } 89 90 /** 91 * @return the studentAge 92 */ 93 public int getStudentAge() { 94 return studentAge; 95 } 96 97 /** 98 * @param studentAge the studentAge to set 99 */ 100 public void setStudentAge(int studentAge) { 101 this.studentAge = studentAge; 102 } 103 104 /** 105 * @return the studentBirthday 106 */ 107 public Date getStudentBirthday() { 108 return studentBirthday; 109 } 110 111 /** 112 * @param studentBirthday the studentBirthday to set 113 */ 114 public void setStudentBirthday(Date studentBirthday) { 115 this.studentBirthday = studentBirthday; 116 } 117 118 /** 119 * @return the studentAddr 120 */ 121 public String getStudentAddr() { 122 return studentAddr; 123 } 124 125 /** 126 * @param studentAddr the studentAddr to set 127 */ 128 public void setStudentAddr(String studentAddr) { 129 this.studentAddr = studentAddr; 130 } 131 132 /** 133 * @return the studentQQ 134 */ 135 public long getStudentQQ() { 136 return studentQQ; 137 } 138 139 /** 140 * @param studentQQ the studentQQ to set 141 */ 142 public void setStudentQQ(long studentQQ) { 143 this.studentQQ = studentQQ; 144 } 145 146 /** 147 * <p>Title:</p> 148 * <p>Description:无参构造函数</p> 149 */ 150 public Student() { 151 super(); 152 } 153 154 /** 155 * <p>Title:</p> 156 * <p>Description:有参构造函数</p> 157 * @param studentName 158 * @param studentSex 159 * @param studentAge 160 * @param studentBirthday 161 * @param studentAddr 162 * @param studentQQ 163 */ 164 public Student(String studentName, String studentSex, int studentAge, 165 Date studentBirthday, String studentAddr, long studentQQ) { 166 super(); 167 this.studentName = studentName; 168 this.studentSex = studentSex; 169 this.studentAge = studentAge; 170 this.studentBirthday = studentBirthday; 171 this.studentAddr = studentAddr; 172 this.studentQQ = studentQQ; 173 } 174 175 }
3、创建数据模型
1 Map<String,Object> root = null; 2 3 /** 4 * 5 * @Title:testStudent 6 * @Description: 7 * @param: 8 * @return: void 9 * @throws 10 */ 11 @Test 12 public void testStudent() 13 { 14 //创建数据模型 15 root = new HashMap<String,Object>(); 16 root.put("student", new Student("张三丰","男",34,new Date(1988-12-12),"湖北省武汉市武昌洪山区",78451214)); 17 student("student.ftl"); 18 studentFile("student.ftl","student.html"); 19 } 20 21 /** 22 * 23 * @Title:student 24 * @Description: 25 * @param:@param name 26 * @return: void 27 * @throws 28 */ 29 private void student(String name) 30 { 31 ft.printFtl(name,root); 32 } 33 34 /** 35 * 36 * @Title:studentFile 37 * @Description: 38 * @param:@param name 39 * @param:@param fileName 40 * @return: void 41 * @throws 42 */ 43 private void studentFile(String name,String fileName) 44 { 45 ft.printFile(name, root, fileName); 46 }
4、新建student.ftl
student.ftl:
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <title>学生信息</title> 5 6 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 7 <meta http-equiv="description" content="this is my page"> 8 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 9 10 11 </head> 12 13 <body> 14 姓名:${student.studentName} 15 性别:${student.studentSex} 16 年龄:${student.studentAge} 17 生日:${(student.studentBirthday)?string("yyyy-MM-dd")} 18 地址:${student.studentAddr} 19 QQ:${student.studentQQ} 20 </body> 21 </html>
5、运行Junit测试文件,生成HTML文件
6、控制台输出结果
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 <html> 3 <head> 4 <title>学生信息</title> 5 6 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 7 <meta http-equiv="description" content="this is my page"> 8 <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 9 10 11 </head> 12 13 <body> 14 姓名:张三丰 15 性别:男 16 年龄:34 17 生日:1970-01-01 18 地址:湖北省武汉市武昌洪山区 19 QQ:78,451,214 20 </body> 21 </html>
假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击http://106.12.206.16:8080/qingruihappy/index.html