除此以外,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();
}對象
}