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 ...
随机推荐
- MongoDB入门系列(三):查询(SELECT)
一.概述 mongodb是最接近关系型数据库的NOSQL数据库,它的存储方式非常的灵活:以至于你会将它看成是一个经过冗余过的关系型数据库的表,这也是Mongodb原子性的一个特征.由于没有关系型数据库 ...
- [eslint-plugin-vue] [vue/no-unused-vars] 'scope' is defined but never used.
前言 今天在做项目的时候Visual Studio Code报了一个错 这个错的意思是声明了scope却没有使用它,这是vue的eslink插件检测的. 我想这个scope的属性不是自己的吗,咋是我声 ...
- HDU Be the Winner [Anti-SG]
传送门 n堆,每次拿走至少一个,剩下的可以分成两堆.最后拿的人输 打表观察发现和Nim游戏一样...裸Anti-SG啊 #include <iostream> #include <c ...
- Linux C 一个简单的线程池程序设计
最近在学习linux下的编程,刚开始接触感觉有点复杂,今天把线程里比较重要的线程池程序重新理解梳理一下. 实现功能:创建一个线程池,该线程池包含若干个线程,以及一个任务队列,当有新的任务出现时,如果任 ...
- ASP.NET Core 入门
关于ASP.NET Core ASP.NET Core 是一个全新的开源.跨平台框架,可以用它来构建基于网络连接的现代云应用程序,比如:Web 应用,IoT(Internet Of Things,物联 ...
- 【模板小程序】求第n个质数
#include <iostream> #include <vector> using namespace std; int nth_prime(int n) { vector ...
- 怎样在VS2010-2017中使用LightningChart绘图控件?
为了方便开发人员能更快速的使用开发工具,下面给大家提供LightningChart® Ultimate SDK v.8 使用手册: 1. 安装软件 - 运行 setup.exe ...
- ACE在windows下的编译及配置(VS2010)
ACE在windows下的编译及配置(VS2010) 分类: -[小西南]- 2013-08-06 16:17 2354人阅读 评论( ...
- css 把图片变为为黑白
img{ -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o- ...
- 关于DOM与BOM的总结
1.什么是BOM,什么是DOM(基本概念) BOM: Browers Object MOdel 浏览器对象模型 DOM: Document Object MOdel ...