资源描述:
《FreeMarker java》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、FreeMarker是一个非常优秀的模板引擎,这个模板引擎可用于任何场景,FreeMarker负责将数据模型中的数据合并到模板中,从而生成标准输出.界面开发人员只需要关于界面(也就是模板文件)的开发,而业务逻辑开发者只需要负责将需要显示的数据填入数据模型-----FreeMarker负责合并数据模型和模板,从而生成标准输出.FreeMarker特别适应于MVC模式的Web应用,虽然FreeMarker具有一些编程能力,但这种编程能力非常有限,无法实现业务逻辑,只能提供一些数据格式的转换功能.因此,通常由Java程序准备要显示的数据,由FreeMarker模板引擎来生成页面,而
2、FreeMarker模板则提供页面布局支持.此外,FreeMarker也是与Web容器无关的,也就是FreeMarker并不一定需要运行在Web容器中:FreeMarker同样可以应用于非Web应用程序环境.而且,FreeMarker并不是只能生成HTML页面,它也可以生成各种文本,如XML,RTF,Java源代码等.Struts2默认采用FreeMarker作为其模板文件,而Struts2所有的主题模板文件都是采用FreeMarker编写的,eclipse中的JSP,Java等模板文件也是采用FreeMarker技术.1,在java程序中使用FreeMarkerFreeMa
3、rker的模板就是一个.ftl文本文件,在该文件中使用了一些FreeMarker的特别标记,这些标记会动态显示,或者控制程序输出,如下面的模板文件代码:${name},你好!${msg}这里类似于${}的就是动态的内容,称作"插值".为了使用FreeMarker来将数据模型中的值合并到模板文件中,可按如下步骤进行:1,创建Configuration实例,该实例负责管理FreeMarker的模板加载路径,负责生成模板实例2,使用Configuration实例来生成Template实例,同进需要指定使用的模板文件3,填充数据模型,数据模型就是一个Map对象4,调用Template
4、实例的process方法完成合并.下面是一个使用FreeMarker创建输出的Java程序,程序源代码如下:packagelee;importjava.util.*;importjava.io.*;importfreemarker.template.*;publicclassHelloFreeMarker{ privateConfigurationcfg; publicvoidinit()throwsException{ //初始化FreeMarker配置 //创建一个Configuration实例 cfg=newConfigura
5、tion(); //设置FreeMarker的模版文件位置 cfg.setDirectoryForTemplateLoading(newFile("templates")); } publicvoidprocess()throwsException{ Maproot=newHashMap(); root.put("name","FreeMarker!"); root.put("msg","您已经完成了第一个FreeMarker的示例"); Templatet=cfg.getTemplate("test.ft
6、l"); t.process(root,newOutputStreamWriter(System.out));}publicstaticvoidmain(String[]args)throwsException{ HelloFreeMarkerhf=newHelloFreeMarker(); hf.init(); hf.process();}}上面的代码创建了一个Map实例,这个Map将作为模板文件的数据模型,我们要使用FreeMarker必须导入freemarker.jar文件,FreeMarker的官网是http://freemarker.sourcef
7、orge.net/,虽然FreeMarker可以在Java程序中使用,但大部分时候还是用来生成HTML页面.2,在Web应用中使用FreeMarker在Web应用中使用FreeMarker跟在Java程序中使用并没有太大的区别.下面是是一个在Web中使用的例子,用来生成HTML页面的模板文件内容如下:
FreeMarker的HelloWorld${message}我们在Web应用中使用FreeMar