freemarker入门实例
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 性别:男
freemarker入门实例的更多相关文章
- freemarker入门实例与源码研究准备工作
首先去freemarker官网下载源码jar包,本文是基于freemarker-2.3.21.tar.gz进行研究的.解压源码包,找到freemarker的源码部分导入eclipse工程中.需要注意的 ...
- React 入门实例教程(转载)
本人转载自: React 入门实例教程
- struts入门实例
入门实例 1 .下载struts-2.3.16.3-all .不摆了.看哈就会下载了. 2 . 解压 后 找到 apps 文件夹. 3. 打开后将 struts2-blank.war ...
- Vue.js2.0从入门到放弃---入门实例
最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用 ...
- wxPython中文教程入门实例
这篇文章主要为大家分享下python编程中有关wxPython的中文教程,分享一些wxPython入门实例,有需要的朋友参考下 wxPython中文教程入门实例 wx.Window 是一个基类 ...
- Omnet++ 4.0 入门实例教程
http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...
- Spring中IoC的入门实例
Spring中IoC的入门实例 Spring的模块化是很强的,各个功能模块都是独立的,我们可以选择的使用.这一章先从Spring的IoC开始.所谓IoC就是一个用XML来定义生成对象的模式,我们看看如 ...
- Node.js入门实例程序
在使用Node.js创建实际“Hello, World!”应用程序之前,让我们看看Node.js的应用程序的部分.Node.js应用程序由以下三个重要组成部分: 导入需要模块: 我们使用require ...
- Java AIO 入门实例(转)
Java7 AIO入门实例,首先是服务端实现: 服务端代码 SimpleServer: public class SimpleServer { public SimpleServer(int port ...
随机推荐
- 关于spring通知中propagation的7种配置《转载》
<转载>:http://nannan408.iteye.com/blog/1754882
- 《Thinking in Java》学习笔记(六)
1.Class相关知识 Class类可以理解为类的图纸,通过Class类可以分析类的结构.构建出类的实例. Class.forName("test.TestClass").newI ...
- LeetCode - 627. Swap Salary
Given a table salary, such as the one below, that has m=male and f=female values. Swap all f and m v ...
- UITableView!别再用代码计算行高了(一)
你还在用代码去计算行高吗?你不感觉那种方式很low吗?从今天起,试着做些改变吧! 别给我讲你喜欢写代码的感觉,你就是要用代码去计算行高,那我这篇文章不适合你. 在讲解复杂内容之前,还是先学习简单的内容 ...
- php define和const的区别
1.使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数2.const用于类成员变量的定义,一经定义,不可修改.3.Define不可以用于类成员变量的定义,可用于全 ...
- PHP 批量获取指定目录下的文件列表(递归,穿透所有子目录)
//调用 $dir = '/Users/xxx/www'; $exceptFolders = array('view','test'); $exceptFiles = array('BaseContr ...
- 【NOIP2015】字串
[NOIP2015]字串 标签: DP NOIP Description 有两个仅包含小写英文字母的字符串 A 和 B.现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其 ...
- Mysql(二):库操作
一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等performance_schema: MyS ...
- wordpress安装五步法
原文链接: 下载并解压缩WordPress程序安装包 在你的网页服务器上为WordPress创建一个数据库, 并且创建一个MySQL 拥有所有权限可以进入和修改的用户 重命名 wp-config-sa ...
- centos/linux下的安装Tomcat
1.启动tomcat时候需要JDK依赖 如果没有安装的请移步到该链接Centos/linux下的JDK安装 2.从官网上下载tomcat压缩包 wget -c http://apache.fayea. ...