freemaker开发学习《一》

 FreeMarker是一个很是优秀的模板引擎,这个模板引擎可用于任何场景,FreeMarker负责将数据模型中的数据合并到模板中,从而生成标准输出.FreeMarker能够提供昜好的团队协做,对于界面开发人员而言,他们只关心界面(也就是模板文件)的开发,而无需理会底层数据;而对于业务逻辑开发者,他们只须要关心负责将须要显示的数据填入数据模型--FreeMarker负责合并数据模型和模板,从而生成标准输出.
  FreeMarker特别适应于MVC模式的web应用,虽然FreeMarker具备一些编程能力,但这种编程能力很是有限,没法实现业务逻辑,保能提供一些数据格式的转换。所以,一般由Java程序准备要显示的数据,由FreeMarker模板引擎来生成页面,而FreeMarker模板则则提供页面布局支持,从而能更好地规范MVC架构,保证视图和业务逻辑的分离。
除此以外,FreeMarker也是与web容器,也就是FreeMarker并不必定须要运行在web容器中。FreeMarker一样能够应用于非web应用程序环境。并且,FreeMarker并非只能生成Html页面,它也能够生成各类文本,如xml,rtf,java程序。
struts2能够很是简单地使用FreeMarker模板做为视图技术,对于传统的jsp页面而言,FreeMarker是一个绝佳的替代方案。

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

}

相关文章
相关标签/搜索