一个简单的freemark输入输出的案例(二)
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 性别:男
一个简单的freemark输入输出的案例(二)的更多相关文章
- 一个简单的freemark输入输出的案例(一)
一. 创建FreeMarker模板文件user.ftl <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN&qu ...
- Java实现一个简单的文件上传案例
Java实现一个简单的文件上传案例 实现流程: 1.客户端从硬盘读取文件数据到程序中 2.客户端输出流,写出文件到服务端 3.服务端输出流,读取文件数据到服务端中 4.输出流,写出文件数据到服务器硬盘 ...
- 用C写一个简单的推箱子游戏(二)
下面接着上一篇随笔<用C写一个简单的推箱子游戏(一)>来写 tuidong()函数是用来判断游戏人物前方情况的函数,是推箱子游戏中非常重要的一个函数,下面从它开始继续介绍推箱子的小程序怎么 ...
- iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)
一.实现效果 二.实现代码 1.数据模型部分 YYQQGroupModel.h文件 // // YYQQGroupModel.h // 02-QQ好友列表(基本数据的加载) / ...
- 搭建一个简单的本地的dubbo-demo案例
一.创建一个Maven工程,然后创建三个module模块 二.dubbo-api(maven模块) 创建一个api类,命名为ApiService.java package com.example.se ...
- 基于ACE的TAO开发---一个简单的入门实例-----VS2008(二)
上一节已经说了如何编译idl文件.现在就用编好的文件来写一个最小的corba小程序的.程序分为服务器程序和客户端程序. 说明下,代码是<基于C++CORBA高级编程>一书中的例子. 1.首 ...
- 自动化运维:(3)写一个简单的Shell脚本(案例)
一.需求 1.test.sh 脚本执行时候需要添加参数才能执行 参数和功能详情如下: 参数 执行效果 start 启动中... stop 关闭中... restart 重启中... * 脚本帮助信息. ...
- 一个简单有效的kubernetes部署案例
部署web-rc:web应用需要去获取redis注入的ip环境变量cluster_ip,以此来访问 [root@sdw1 files]# cat testweb-rc.yaml kind: Repli ...
- 用C写一个简单的推箱子游戏(一)
我现在在读大二,我们有一门课程叫<操作系统>,课程考查要求我们可以写一段程序或者写Windows.iOS.Mac的发展历程.后面我结合网上的资料参考,就想用自己之前简单学过的C写一关的推箱 ...
随机推荐
- BZOJ 1927: [Sdoi2010]星际竞速 [上下界费用流]
1927: [Sdoi2010]星际竞速 题意:一个带权DAG,每个点恰好经过一次,每个点有曲速移动到他的代价,求最小花费 不动脑子直接上上下界费用流过了... s到点连边边权为曲速的代价,一个曲速移 ...
- BZOJ 2004: [Hnoi2010]Bus 公交线路 [DP 状压 矩阵乘法]
传送门 题意: $n$个公交站点,$k$辆车,$1...k$是起始站,$n-k+1..n$是终点站 每个站只能被一辆车停靠一次 每辆车相邻两个停靠位置不能超过$p$ 求方案数 $n \le 10^9, ...
- SDN第5次上机作业
SDN第5次上机作业 实验目的 1.搭建如下拓扑并连接控制器 2.下发相关流表和组表实现负载均衡 3.抓包分析验证负载均衡 实验步骤 1.建立以下拓扑,并连接上ODL控制器. 提交要求:ODL拓扑界面 ...
- client / page / offset / screen X / Y
1.clientX / clientY 相对于可视窗口左上角,不包括菜单栏与滚动条 2.pageX / pageY 相对于网页左上角,不包括菜单栏,包括滚动条 3.offsetX / offsetY ...
- ubuntu16.04安装ftp服务器
参考文章: http://www.linuxidc.com/Linux/2017-01/139233.htm 1.检查是否安装vsftpd,如果安装了跳过第二步 vsftpd -v 2.安装vsftp ...
- CSS常用属性计算原理
absolute: left.right/top.bottom 的百分比值分别根据父元素的 wdith / height 计算 margin: top /right / bottom/ left 的百 ...
- ★Linux命令行操作技巧(作为服务器端)
1.统计某个目录下总共有多少个文件(递归统计所有子目录)ls -lR|grep "^-"|wc -l
- Math.abs(~2018),掌握规律!
Math.abs(~2018) 这要用到一些计算机的基础知识. Math.abs(x)指的是返回一个数的绝对值,而关键在"~2018",这是取反操作符,故取相反数得结果为-2018 ...
- YUM安装软件
YUM:介绍.工作流程.本地yum.网络yum.yum的相关命令 一.What is YUM YUM是基于rpm但更胜于rpm的软件管理工具 YUM的优点: 1.更方便的管理rpm软件包 2.自动解决 ...
- win7下通过easyBCD引导安装Ubuntu16.04(并处理遇到的坑)
Ubuntu16.04作为目前最新版本的ubuntu系统,相信很多人都想在自己的电脑上安装一下,然而系统的安装方法各式各样,u盘法.grub引导法等等,这里我将介绍在win7系统下用easyBCD软件 ...