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................");

  }

  }

  y

  用到的模版 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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值