freemarker获取封装类中对象的属性(六)
freemarker获取封装类中对象的属性
1、设计思路
(1)封装学生类
(2)创建数据模型
(3)新建student.ftl
(4)运行Junit测试文件,生成HTML文件
2、封装学生类
Student.java:
- /**
- * @Title:Student.java
- * @Package:com.you.freemarker.model
- * @Description:学生类
- * @author:Youhaidong(游海东)
- * @date:2014-5-26 下午11:41:05
- * @version V1.0
- */
- package com.you.freemarker.model;
- import java.io.Serializable;
- import java.util.Date;
- /**
- * 类功能说明
- * 类修改者 修改日期
- * 修改说明
- * <p>Title:Student.java</p>
- * <p>Description:游海东个人开发</p>
- * <p>Copyright:Copyright(c)2013</p>
- * @author:游海东
- * @date:2014-5-26 下午11:41:05
- * @version V1.0
- */
- public class Student implements Serializable
- {
- /**
- * @Fields serialVersionUID:序列化
- */
- private static final long serialVersionUID = 1L;
- /**
- * 学生姓名
- */
- private String studentName;
- /**
- * 学生性别
- */
- private String studentSex;
- /**
- * 学生年龄
- */
- private int studentAge;
- /**
- * 学生生日
- */
- private Date studentBirthday;
- /**
- * 学生地址
- */
- private String studentAddr;
- /**
- */
- private long studentQQ;
- /**
- * @return the studentName
- */
- public String getStudentName() {
- return studentName;
- }
- /**
- * @param studentName the studentName to set
- */
- public void setStudentName(String studentName) {
- this.studentName = studentName;
- }
- /**
- * @return the studentSex
- */
- public String getStudentSex() {
- return studentSex;
- }
- /**
- * @param studentSex the studentSex to set
- */
- public void setStudentSex(String studentSex) {
- this.studentSex = studentSex;
- }
- /**
- * @return the studentAge
- */
- public int getStudentAge() {
- return studentAge;
- }
- /**
- * @param studentAge the studentAge to set
- */
- public void setStudentAge(int studentAge) {
- this.studentAge = studentAge;
- }
- /**
- * @return the studentBirthday
- */
- public Date getStudentBirthday() {
- return studentBirthday;
- }
- /**
- * @param studentBirthday the studentBirthday to set
- */
- public void setStudentBirthday(Date studentBirthday) {
- this.studentBirthday = studentBirthday;
- }
- /**
- * @return the studentAddr
- */
- public String getStudentAddr() {
- return studentAddr;
- }
- /**
- * @param studentAddr the studentAddr to set
- */
- public void setStudentAddr(String studentAddr) {
- this.studentAddr = studentAddr;
- }
- /**
- * @return the studentQQ
- */
- public long getStudentQQ() {
- return studentQQ;
- }
- /**
- * @param studentQQ the studentQQ to set
- */
- public void setStudentQQ(long studentQQ) {
- this.studentQQ = studentQQ;
- }
- /**
- * <p>Title:</p>
- * <p>Description:无参构造函数</p>
- */
- public Student() {
- super();
- }
- /**
- * <p>Title:</p>
- * <p>Description:有参构造函数</p>
- * @param studentName
- * @param studentSex
- * @param studentAge
- * @param studentBirthday
- * @param studentAddr
- * @param studentQQ
- */
- public Student(String studentName, String studentSex, int studentAge,
- Date studentBirthday, String studentAddr, long studentQQ) {
- super();
- this.studentName = studentName;
- this.studentSex = studentSex;
- this.studentAge = studentAge;
- this.studentBirthday = studentBirthday;
- this.studentAddr = studentAddr;
- this.studentQQ = studentQQ;
- }
- }
3、创建数据模型
- Map<String,Object> root = null;
- /**
- *
- * @Title:testStudent
- * @Description:
- * @param:
- * @return: void
- * @throws
- */
- @Test
- public void testStudent()
- {
- //创建数据模型
- root = new HashMap<String,Object>();
- root.put("student", new Student("张三丰","男",34,new Date(1988-12-12),"湖北省武汉市武昌洪山区",78451214));
- student("student.ftl");
- studentFile("student.ftl","student.html");
- }
- /**
- *
- * @Title:student
- * @Description:
- * @param:@param name
- * @return: void
- * @throws
- */
- private void student(String name)
- {
- ft.printFtl(name,root);
- }
- /**
- *
- * @Title:studentFile
- * @Description:
- * @param:@param name
- * @param:@param fileName
- * @return: void
- * @throws
- */
- private void studentFile(String name,String fileName)
- {
- ft.printFile(name, root, fileName);
- }
4、新建student.ftl
student.ftl:
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>学生信息</title>
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="this is my page">
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- </head>
- <body>
- 姓名:${student.studentName}
- 性别:${student.studentSex}
- 年龄:${student.studentAge}
- 生日:${(student.studentBirthday)?string("yyyy-MM-dd")}
- 地址:${student.studentAddr}
- QQ:${student.studentQQ}
- </body>
- </html>
5、运行Junit测试文件,生成HTML文件
6、控制台输出结果
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>学生信息</title>
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="this is my page">
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- </head>
- <body>
- 姓名:张三丰
- 性别:男
- 年龄:34
- 生日:1970-01-01
- 地址:湖北省武汉市武昌洪山区
- QQ:78,451,214
- </body>
- </html>
freemarker获取封装类中对象的属性(六)的更多相关文章
- freemarker获取封装类中对象的属性
freemarker获取封装类中对象的属性 1.设计思路 (1)封装学生类 (2)创建数据模型 (3)新建student.ftl (4)运行Junit测试文件,生成HTML文件 2.封装学生类 Stu ...
- 利用KVC的方式更方便地获取数组中对象的属性的最值平均值等
直接上代码 输出结果也在相应的代码里标注出来了 //main.m文件 #import <Foundation/Foundation.h> #import "Student.h&q ...
- Java获取未知类型对象的属性
获取未知类型对象的属性通常有两种方式: 一是通过自定义注解的方式,通过获取被注解的属性从而获取属性的值,这种方式也是Spring参数注入的重要实现手段 二是通过反射获取属性的名称,通过属性名从而获取属 ...
- JavaScript中对象的属性
在JavaScript中,属性决定了一个对象的状态,本文详细的研究了它们是如何工作的. 属性类型 JavaScript中有三种不同类型的属性:命名数据属性(named data properties) ...
- java 对list中对象按属性排序
实体对象类 --略 排序类----实现Comparator接口,重写compare方法 package com.tang.list; import java.util.Comparator; publ ...
- springboot中spring.profiles.active来引入多个properties文件 & Springboot获取容器中对象
1. 引入多个properties文件 很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据, ...
- Vue 改变数组中对象的属性不重新渲染View的解决方案
Vue 改变数组中对象的属性不重新渲染View的解决方案 在解决问题之前,我们先来了解下 vue响应性原理: Vue最显著的一个功能是响应系统-- 模型只是一个普通对象,修改对象则会更新视图.受到ja ...
- array排序(按数组中对象的属性进行排序)
使用array.sort()对数组中对象的属性进行排序 <template> <div> <a @click="sortArray()">降序& ...
- JS 取Json数据中对象特定属性值
解析JSON JSON 数据 var str = '[{"a": "1","b": "2"}, {"a&quo ...
随机推荐
- BZOJ 2342: [Shoi2011]双倍回文 [Manacher + set]
题意: 求最长子串使得它有四个相同的回文串SSSS相连组成 枚举中间x 找右边的中间y满足 y-r[y]<=x y<=x+r[x]/2 用个set维护 注意中间只能是# #include ...
- Asp.Net Core MailKit 完美附件(中文名、长文件名)
最近在使用MailKit组件发送邮件,看了一些博客其实还是蛮简单的,但是发送附件的时候却产生了不小的问题,附件的中文名字是乱码的,或者附件的名字过长就会无效,附件的名字在QQ邮箱中会变成类似 tcmi ...
- 定制化WinPE
1 .首先挂载wim Dism /Mount-WIM /WimFile:D:\install.wim /Index: /MountDir:D:\wimmount 2. 如何要修改WinPE的启动项,可 ...
- mysql 修改默认字符集为utf8
MySQL 5.5, all you need is: [mysqld] character_set_client=utf8 character_set_server=utf8 collation_s ...
- memcached 的实践操作
memcached安装和使用 yum install -y libevent memcached libmemcached 启动命令: /etc/init.d/memcached st ...
- 【echarts3】--1 简单入门
echarts3 相信大家都了解吧,是百度研发的 ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8 ...
- pro asp.net mvc 5笔记
1.Ninject条件绑定方法When(predicate)WhenClassHas<T>()WhenInj ectedInto<T>()例: kernel.Bind<I ...
- 用yii2给app写接口(上)
Yii2如何实现RESTful风格的API 1.建立单独的应用程序 为了增加程序的可维护性,易操作性,我们选择新建一套应用程序,这也是为了和前台应用.后台应用区分开操作.有些人要嚷嚷了,为啥非得单独搞 ...
- PHP不使用array_merge函数实现一维数组合并
function array_mer() { $arrays = func_get_args(); //获取当前函数中传递进来的所有参数,也就是所有一维数组 // echo '<pre>' ...
- 第二十一章 Django的分页与cookie
第二十一章 Django的分页与cookie 第一课 模板 1.模板的继承 在Template目录下新建模板master.html <!DOCTYPE html> <html lan ...