1、在eclipse中建立FreeMarker模板
在FreeMarker中模板的概念就是:包含一些由${…}包围的特殊代码的文件。这些特殊代码是FreeMaker指令。
FreeMarker 模板以ftl后缀命名 如本文所示的:
user.ftl
${user.userName}
${user.userPassword}html
2、在eclipse中建立FreeMarker数据模型
FreeMarker数据模型:存在于计算机内存中的一种结构,由开发人员建立,向模板提供信息。
注意:FreeMarker数据模型不是文本文件。FreeMarker的数据模型是树状结构的。
如本文所示的:
User.java
public class User{
private userName;
private userPassword;
…(省略getter setter方法)
}
User对象的树状模型如:
(root)
|+-user
|+-userName=“张三”
|+-userPassword=“123”
要访问user对象的userName属性,能够经过点操做符号如:user.userNamejava
3、在eclipse中填充FreeMarker数据模型
FreeMarker的根对象使用Map创建的。将建立好的User对象已键-值对得形式封装到Map中如:
Map<?,?> root=new HashMap<?,?>();
root.put(“user”,user);web
至此,咱们在eclipse中已经完成了大部分的前期准备工做。
FreeMarker工做原理中讲到: 数据+模型=输出,那么咱们该如何得到想要的结果呢。
也许你已经想到了,建立FreeMarker的模板引擎,解析模板。步骤以下:
1.建立和配置Configuration对象,Configuration对象实例负责管理FreeMarker模板的路径加载及模板的建立和缓存。一般应用程序的生命周期中只会建立一个Configuration实例。
Configuration config=new Configuration();
config.setDirectoryForTemplateLoading(new File(“templates”));
config.setObjectWrapper(new DefaultObjectWraaper());缓存
2.获取模板实例,即经过Configuration实例获取Template实例,调用getTemplate()方法。
Template template=config.getTemplate(templateName);app
3.合并数据模型和模板
经过调用Template实例的process()方法合并数据模型和模板,方法接受一个数据模型的根和一个writer做为参数,将结果输出到Writer。 为简化起见,本例输出到控制台
Writer out=new OutputStreamWriter(System.out);
template.process(root , out);
out.flush();
out.close();
好了,经过上面的讲解,您已经对FreeMarker的应用有了必定的了解。如今开始咱们就来建立属于本身的Freemarker用例吧
本例的开发环境: Eclipse3.2+MyEclipse6.0+JDK5.0+FreeMarker
1)在在eclipse中创建一个web工程:freeMakerTest
2)下载FreeMaker工具包,解压后,在lib目录下拷贝freemark.jar到freeMakerTest工程下的lib目录中。
3)在在eclipse中的src目录下建立以下图所示的目录结构:
templates文件夹存放user.ftl文件。
test/frrmrker/uitl/文件夹下存放Freemarker模板引擎 FreeMarkertUtil.java。
test/client文件夹下存放客户端测试类 ClientTest.java ,User.java
4)在eclipse中编写user.ftl文件,FreeMarkertUtil.java, ClientTest.java ,User.javaeclipse
源文件的具体内容需在http://www.oecp.cn/hi/hailang/blog/200下载后查看。工具
但愿经过本文,对刚开始或即将开始用eclipse展开FreeMarker旅程的朋友有所帮助。学习
本文所提到的下载内容需在http://www.oecp.cn/hi/hailang/blog/200下载测试