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;

     /**
      * QQ
      */
     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获取封装类中对象的属性(六)的更多相关文章

  1. freemarker获取封装类中对象的属性

    freemarker获取封装类中对象的属性 1.设计思路 (1)封装学生类 (2)创建数据模型 (3)新建student.ftl (4)运行Junit测试文件,生成HTML文件 2.封装学生类 Stu ...

  2. 利用KVC的方式更方便地获取数组中对象的属性的最值平均值等

    直接上代码 输出结果也在相应的代码里标注出来了 //main.m文件 #import <Foundation/Foundation.h> #import "Student.h&q ...

  3. Java获取未知类型对象的属性

    获取未知类型对象的属性通常有两种方式: 一是通过自定义注解的方式,通过获取被注解的属性从而获取属性的值,这种方式也是Spring参数注入的重要实现手段 二是通过反射获取属性的名称,通过属性名从而获取属 ...

  4. JavaScript中对象的属性

    在JavaScript中,属性决定了一个对象的状态,本文详细的研究了它们是如何工作的. 属性类型 JavaScript中有三种不同类型的属性:命名数据属性(named data properties) ...

  5. java 对list中对象按属性排序

    实体对象类 --略 排序类----实现Comparator接口,重写compare方法 package com.tang.list; import java.util.Comparator; publ ...

  6. springboot中spring.profiles.active来引入多个properties文件 & Springboot获取容器中对象

    1.    引入多个properties文件 很多时候,我们项目在开发环境和生成环境的环境配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境的时候,我们是用正式的数据, ...

  7. Vue 改变数组中对象的属性不重新渲染View的解决方案

    Vue 改变数组中对象的属性不重新渲染View的解决方案 在解决问题之前,我们先来了解下 vue响应性原理: Vue最显著的一个功能是响应系统-- 模型只是一个普通对象,修改对象则会更新视图.受到ja ...

  8. array排序(按数组中对象的属性进行排序)

    使用array.sort()对数组中对象的属性进行排序 <template> <div> <a @click="sortArray()">降序& ...

  9. JS 取Json数据中对象特定属性值

    解析JSON JSON 数据 var str = '[{"a": "1","b": "2"}, {"a&quo ...

随机推荐

  1. 51NOD 1227 平均最小公倍数 [杜教筛]

    1227 平均最小公倍数 题意:求\(\frac{1}{n} \sum_{i=1}^n lcm(n,i)\) 和的弱化版? \[ ans = \frac{1}{2}((\sum_{i=1}^n \su ...

  2. poj1265&&2954 [皮克定理 格点多边形]【学习笔记】

    Q:皮克定理这种一句话的东西为什么还要写学习笔记啊? A:多好玩啊... PS:除了蓝色字体之外都是废话啊...  Part I 1.顶点全在格点上的多边形叫做格点多边形(坐标全是整数) 2.维基百科 ...

  3. jira + confluence 安装和破解

    Window环境: 环境准备 安装JAVA1.8以上版本 安装SQL SERVER 或 MySQL: jira安装和破解 下载安装包 https://downloads.atlassian.com/s ...

  4. Xcode的SVN提示"The request timed out."的解决方案

    问题描述 在利用Xcode的SourceControl进行SVN代码检出时,确认输入地址.帐号密码都正确的情况下,总是提示"The request timed out.".该问题的 ...

  5. jquery $(document).ready() 与window.onload的区别(转)

    Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的. 1.执行时间 windo ...

  6. php实现的短网址算法分享

    这篇文章主要介绍了php实现的短网址算法,理论上支持1,073,741,824个短网址,个人使用足够了,需要的朋友可以参考下 每个网址用6个字符代替,(6^32) 最多可以拥有1,073,741,82 ...

  7. CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn Mysql5.7版本更新后有很多变化,比如json等,连安装都有变化 ...

  8. 撸一撸Spring Cloud Ribbon的原理-负载均衡器

    在上一篇<撸一撸Spring Cloud Ribbon的原理>中整理发现,RestTemplate内部调用负载均衡拦截器,拦截器内最终是调用了负载均衡器来选择服务实例. 接下来撸一撸负载均 ...

  9. Mysql数据库建立索引的优缺点有哪些?

    索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 什么是索引 数据库索引好比是一本书前面的目录,能加快数据库的查询速度. 例如这样一个查询:select * ...

  10. uva 116 单向TSP

    这题的状态很明显. 转移方程就是 d(i,j)=min(d(i+1,j+1),d(i,j+1),d(i-1,j+1)) //注意边界 我用了一个next数组方便打印结果,但是一直编译错误,原来是不能用 ...