输出: a b c d e f g h i j a
b c d e f g h i j - -
----------------------------------------------------------- FreeMarker是一个非常优秀的模板引擎,这个模板引擎可用于任何场景,FreeMarker负责将数据模型中的数据合并到模板中,从而生成标准输出.界面开发人员只需要关于界面(也就是模板文件)的开发,而业务逻辑开发者只需要负责将需要显示的数据填入数据模型
-----FreeMarker负责合并数据模型和模板,从而生成标准输出. FreeMarker特别适应于MVC模式的Web应用,虽然FreeMarker具有一些编程能力,但这种编程能力非常有限,无法实现业务逻辑,只能提供一些数据格式的转换功能.因此,通常由Java程序准备要显示的数据,由FreeMarker模板引擎来生成页面,而FreeMarker模板则提供页面布局支持.
此外,FreeMarker也是与Web容器无关的,也就是FreeMarker并不一定需要运行在Web容器中:FreeMarker同样可以应用于非Web应用程序环境.而且,FreeMarker并不是只能生成HTML页面,它也可以生成各种文本,如XML,RTF,Java源代码等.
Struts2默认采用FreeMarker作为其模板文件,而Struts2所有的主题模板文件都是采用FreeMarker编写的,eclipse中的JSP,Java等模板文件也是采用FreeMarker技术. 1,在java程序中使用FreeMarker
FreeMarker的模板就是一个.ftl文本文件,在该文件中使用了一些FreeMarker的特别标记,这些标记会动态显示,或者控制程序输出,如下面的模板文件代码: ${name},你好!${msg}
这里类似于${}的就是动态的内容,称作\插值\
为了使用FreeMarker来将数据模型中的值合并到模板文件中,可按如下步骤进行:
1,创建Configuration实例,该实例负责管理FreeMarker的模板加载路
径,负责生成模板实例
2,使用Configuration实例来生成Template实例,同进需要指定使用的模板文件
3,填充数据模型,数据模型就是一个Map对象 4,调用Template实例的process方法完成合并.
下面是一个使用FreeMarker创建输出的Java程序,程序源代码如下: package lee; import java.util.*; import java.io.*;
import freemarker.template.*; public class HelloFreeMarker {
private Configuration cfg; public void init() throws Exception {
//初始化FreeMarker配置 //创建一个Configuration实例 cfg = new Configuration(); //设置FreeMarker的模版文件位置
cfg.setDirectoryForTemplateLoading(new File(\ }
public void process()throws Exception {
Map root = new HashMap(); root.put(\
root.put(\您已经完成了第一个FreeMarker的示例\ Template t = cfg.getTemplate(\
t.process(root, new OutputStreamWriter(System.out)); }
public static void main(String[] args)throws Exception {
HelloFreeMarker hf = new HelloFreeMarker(); hf.init(); hf.process(); } }
上面的代码创建了一个Map实例,这个Map将作为模板文件的数据模型,我们要使用FreeMarker必须导入freemarker.jar文件,FreeMarker的官hen
tre
t.t
ps/
:o
/u
/rfc网reefeo
mr
ag
re
k.
是
,虽然FreeMarker可以在Java程序中使用,但大部分
时候还是用来生成HTML页面.