(一) Freemarker 简介 && 环境搭建

来源:互联网 发布:数据挖掘有什么作用 编辑:程序博客网 时间:2024/05/16 12:12

一 Freemarker 简介 

        1. FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。
        2. FreeMarker不是一个Web应用框架,而是作为Web应用框架一个组件。
        3. FreeMarker与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境。
        4. FreeMarker能够生成各种文本:HTML、XML、RTF、Java源代码等等。
        5. FreeMarker生成的文本可以保存到本地文件;可以作为Email发送;可以从Web应用程序发送它返回给Web浏览器。
        6. Freemarker是免费的。

        7. Freemarker 在开发中常用于生成html,发送邮件等应用场景。

        7. Freemarker 用一句话概括就是:数据模型 + 模板

             

二 环境搭建

        1. 引入jar 包:freemarker.2.3.23.jar

        2. 编写模板 hello.ftl 文件。由于Freemarker 模板技术常用于web环境,生成html ,所以此处用html 来举例。

[html] view plain copy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta charset="UTF-8">  
  5. <title>${title}</title>  
  6. </head>  
  7. <body>  
  8.   
  9. 你好,${name}  
  10. --时间: ${date?string("yyyy-MM-dd HH:mm:ss")}  
  11.   
  12.   
  13. </body>  
  14. </html>  

        3 . 处理类

[java] view plain copy
  1. package org.zgf.learn.freemarker;  
  2.   
  3. import java.io.File;  
  4. import java.io.OutputStreamWriter;  
  5. import java.io.Writer;  
  6. import java.util.Date;  
  7. import java.util.HashMap;  
  8. import java.util.Map;  
  9.   
  10. import org.junit.Test;  
  11.   
  12. import freemarker.template.Configuration;  
  13. import freemarker.template.Template;  
  14.   
  15. /** 
  16.  *  入门程序  
  17.  */  
  18. public class Test_01_hello {  
  19.       
  20.     @Test  
  21.     public void test_1() throws Exception{  
  22. //      1. 创建配置类  
  23.         Configuration cfg = new Configuration(Configuration.VERSION_2_3_22);  
  24. //          1.1 设置模板加载目录  
  25.         cfg.setDirectoryForTemplateLoading(new File("src/test/resources/templates"));  
  26. //          1.2 设置编码  
  27.         cfg.setDefaultEncoding("UTF-8");  
  28. //          1.3 设置模板更新延迟时间  
  29.         cfg.setTemplateUpdateDelayMilliseconds(0);  
  30.           
  31. //      2. 创建数据模型:模型数据一般用一个map 来构建  
  32.         Map<String,Object> root = new HashMap<>();  
  33.         root.put("title""Hello World");  
  34.         root.put("name""键盘上的幽灵");  
  35.         root.put("date"new Date());  
  36. //      3. 加载模板文件  
  37.         Template template = cfg.getTemplate("hello.ftl");  
  38.           
  39. //      4. 整合数据 和 模板,输出到控制台  
  40.         Writer out = new OutputStreamWriter(System.out);   
  41.         template.process(root, out);  
  42.         out.flush();  
  43.         out.close();  
  44.     }  
  45.   
  46. }  

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝买的衣服退回去了不退钱怎么办 淘宝客人退回的衣服有口红印怎么办 淘宝拍产品照片被投诉著作权怎么办 员工总在节假日忙的时候请假怎么办 买东西商家少给了货应该怎么办 买家退回的衣服有污渍卖家该怎么办 商家说衣服有污渍不退怎么办 退回商家换货不给寄应怎么办 毕业照跟拍摄影师拍砸了怎么办 韵达快递寄快递快递单号丢了怎么办 韵达快递把我的户口本弄丢了怎么办 淘宝卖家发货与实际货物不符怎么办 寄出去的快递不知道物流单号怎么办 淘宝买家所需要的货物填错怎么办 淘宝卖家顾客拒绝签收货要怎么办 闲鱼买家申请退货退款不发货怎么办 在闲鱼买东西买家恶意退货怎么办 淘宝卖家给的退货地址是国外怎么办 淘宝顾客下单了一件代发怎么办 闲鱼上卖东西快递单号填错了怎么办 淘宝收货后快递显示不签收怎么办 淘宝快递显示签收但没收到货怎么办 国外客人收到货后嫌弃质量差怎么办 理发15涨到20客人少了怎么办 微店买家收到货了又退款怎么办 百世快递单号查不到物流信息怎么办 知道快递单号怎么查物流信息怎么办 快递单号一直查不到物流信息怎么办 买家未收到货就发起仅退款怎么办 拼多多收货码短信没了怎么办 淘宝运费险快递单号填错怎么办 如果淘宝小二判定退款不同意怎么办 商品退回卖家电话关机不收货怎么办 咸鱼等待卖家提供凭证超时怎么办 闲鱼等待卖家上传凭证超时怎么办 集运仓说有违禁品不能入库怎么办 转运停止寄到转运仓了怎么办 为什么阿里免费开店会被限制怎么办 e盘里的文件已经更改或移动怎么办 决斗之城忘了在那个服务器怎么办 ipad需要激活锁忘了id怎么办