FreeMarker

FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。   FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写   FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序   虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据   FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件   FreeMarker与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境   FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库   FreeMarker是免费的

编辑本段入门例子

  

Test1.java
  package freemarker;
  import java.io.File;
  import java.io.FileOutputStream;
  import java.io.OutputStreamWriter;
  import java.io.Writer;
  import java.util.HashMap;
  import java.util.Map;
  import freemarker.template.Configuration;
  import freemarker.template.Template;
  public class Test1 {
  private Configuration cfg;
  public Configuration getCfg() {
  return cfg;
  }
  public void init() throws Exception {
  cfg = new Configuration();
  cfg.setDirectoryForTemplateLoading(new File("bin/freemarker"));
  }
  public static void main(String[] args) throws Exception {
  Test1 obj = new Test1();
  obj.init();
  Map root = new HashMap();
  Template t = obj.getCfg().getTemplate("Test1.ftl");
  Writer out = new OutputStreamWriter(new FileOutputStream("Test1.html"), "GBK");
  t.process(root, out);
  System.out.println("Successfull................");
  }
  }
  用到的模版 Test1.ftl
  <#macro greet person,website>
  Hello ${person}! Your Website is ${website}.
  </#macro>
  <html>
  <head>
  <title>Hello World</title>
  </head>
  <body>
  <@greet person="老紫竹" website="www.java2000.net"/>
  </body>
  </html>
  运行结果
  <html>
  <head>
  <title>Hello World</title>
  </head>
  <body>
  Hello 老紫竹! Your Website is <a target="_blank" href="www.java2000.net.">www.java2000.net.</a>
  </body>
  </html>
  注:Test1.ftl的位置在bin/freemarker下

posted on 2012-02-13 11:09  阳光总在风雨后001  阅读(376)  评论(0编辑  收藏  举报

导航