fremarker

简介: 引用:http://www.hudong.com/wiki/freemarker FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。

引用:http://www.hudong.com/wiki/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是免费的

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下

相关文章
|
人工智能 运维 监控
支付宝技术风险负责人陈亮:把事情做到极致,技术的差异性才会体现出来
只有真正做到极致,技术的差异性才会体现出来。
6306 0
|
应用服务中间件 nginx 网络协议
关于支付宝异步通知的那些事
一、如何指定接收异步通知的地址     对于支付产生的交易,支付宝会根据原始支付API中传入的异步通知地址notify_url,通过POST请求的形式将支付结果 作为参数通知到商户系统。     以app支付为例,支付请求中notify_url参数的(如下图):      二、异步通知返回参数介绍     支付宝通过POST请求的形式将支付结果作为参数通知到商户系统。
2888 12
|
存储 JSON 自然语言处理
基于Vue2.x的前端架构,我们是这么做的
基于Vue2.x的前端架构,我们是这么做的
420 0
基于Vue2.x的前端架构,我们是这么做的
|
SQL Java 数据库
利用IDEA的Endpoints来打断点 | Java Debug 笔记
一. pom 文件 引入 quartz jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> 复制代码 二. 创建一个 job 并继承 QuartzJobBean @Slf4j public class HelloWorldJob extends QuartzJobBean { @Override protected void executeInternal(Jo
2924 0
|
存储 资源调度 容灾
五个问答,告诉你阿里云对象存储如何助力钉钉战胜业务洪峰
为了积极迎接此次疫情的挑战,政府组织、企业、院校等纷纷开启了线上办公,视频会议、在线教育以及基于互联网的数据分析已然成为当下最重要的刚需。在这样如此巨大的业务流量和数据增量的压力下,钉钉是如何积极应对,从而实现存储的快速扩容,保障了业务连续性。
1718 0
五个问答,告诉你阿里云对象存储如何助力钉钉战胜业务洪峰
|
数据可视化 搜索推荐 数据处理
闲鱼内容视频化展示方案(超全面)
随着短视频的流行,如何推动内容视频化,闲鱼给出了新的解决方案。
1112 0
闲鱼内容视频化展示方案(超全面)
|
弹性计算
阿里云备案要几天时间?
阿里云备案要几天时间?阿里云备案时间还是比较快的,如果用户材料齐全,提交到阿里云审核无误后,一般一天即可提交到所对应省事的管局,备案号下来的时间要以管局的审核时间为准,一般管局审核时间为10个工作日左右!今天,就和大家讲解下阿里云快速备案操作,这个操作可能和阿里云那个备案多久就送多久服务器使用时长有关。
|
域名解析 网络协议
手把手教你云解析DNS购买与绑定域名
您可以根据需要自身的业务需要,选择适合的套餐和功能,并点击右侧“立即购买”按钮,完成下单支付。如何选择适合的套餐和功能,您可以参阅 版本对比 文档。
1713 0
|
SQL 运维 安全
干货 | 阿里云数据库RDS MySQL数据安全预防与恢复
作者:凌洛,阿里云数据库运维专家
1606 0
干货 | 阿里云数据库RDS MySQL数据安全预防与恢复