除此以外,Struts2默认采用FreeMarker做为其模板文件,而Struts2全部的主题模板文件都是采用FreeMarker编写的。所以,若是咱们须要扩展struts2的主题,也须要熟悉FreeMarker技术。java
为了使用FreeMarker来将数据模型中的值合并到模板文件中
通常状况下按下述步骤操做
第一步:建立Configuration实例,该实例负责管理FreeMarker的模板加载路径,负责生成模板实例
第二步:使用Configuration实例来生成Template实例,同时须要指定模板文件
第三步:填充数据模型,数据模型就是一个Map对象
第四步:调用Template实例的process方法完成合并web
在web应用中使用FreeMarker与在Java应用使用并无太大的区别,同样须要定义模板文件,但此时的模板文件应该是HTML模板---也就是该板块能生成一个HTML页面。编程
在JAVA程序中使用FreeMarker架构
package ish;
import java.util.*;
import java.io.*;
import freemarker.template.*;jsp
public class HelloFreeMarker
{
private Configuration cfg;
public void init() throws Exception
{
//第一步
//初始化FreeMarker配置
//建立一个Configuration实例
cfg = new Configuration();
//设置FreeMarker的模版文件位置
cfg.setDirectoryForTemplateLoading(new File("templates"));
}
public void process()throws Exception
{布局
//第二步
Template t = cfg.getTemplate("test.ftl");
t.process(root, new OutputStreamWriter(System.out));spa
//第三步
Map root = new HashMap();
root.put("name", "FreeMarker!");
root.put("msg" , "您已经完成了第一个FreeMarker的示例");orm
}xml
public static void main(String[] args)throws Exception
{
HelloFreeMarker hf = new HelloFreeMarker();
hf.init();
//第四步
hf.process();
}对象
}