11(maven+SSH)之Freemarker 页面静态化

转载 2015年11月20日 16:48:31
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 

l         FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 

l         虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图)
wKiom1ZNfmryiJiKAAAb_fr77R8479.png

模板 + 数据模型 = 输出

l         FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件 

l         FreeMarker与容器无关,因为它并不知道HTTPServletFreeMarker同样可以应用于非Web应用程序环境 

l         FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库 

l         FreeMarker是免费的 


(1)实例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package freemaker;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class FreeMarkerDemo {
    public static void main(String[] args) {
        // 配置对象 .html
        Configuration conf = new Configuration();
        // 模板路径
        String dir = "D:\\workspace2\\freemaker\\ftl\\";
        try {
            // 导入模板目录
            conf.setDirectoryForTemplateLoading(new File(dir));
            // 获取模板
            Template template = conf.getTemplate("freemaker.html");
            // 数据
            Map root = new HashMap();
            root.put("world""世界");
            // 输出流
            Writer out = new FileWriter(new File(dir + "hello.html"));
            // 生成开始
            template.process(root, out);
            out.flush();
            out.close();
        catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("生成完毕");
    }
}

(2)返回对象

         

1
2
3
4
5
6
7
           Person p = new Person();
            p.setId(9527);
            p.setName("华安");
            root.put("per", p);
     
            编号:${per.id}<br/>
            姓名:${per.name}<br/>

(3)遍历List

   

1
2
3
4
5
6
7
8
9
10
11
         List<Person> list = new ArrayList<Person>();
            for(int i =0;i<10;i++){
                Person p = new Person();
                p.setId(9527+i);
                p.setName("华安"+i);
                list.add(p);
            }
            root.put("list", list);
            <#list list as p>
                ${p.id} -- ${p.name}
            </#list>

(4)遍历Map

     

1
2
3
4
5
6
7
           Map map = new HashMap();
            map.put("id", "1001");
            map.put("name", "秋香");
            root.put("map", map);
            <#list map?keys as key>
                ${map[key]}
            </#list>


(5)遍历List<Map>

   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
            Map map = new HashMap();
            map.put("id""1001");
            map.put("name""秋香");
            Map map2 = new HashMap();
            map2.put("id""1002");
            map2.put("name""石榴姐");
            List<Map> maplist = new ArrayList<Map>();
            maplist.add(map);
            maplist.add(map2);
            root.put("maplist", maplist);
             
            <#list maplist as map>
                <#list map?keys as key>
                    ${map[key]}
                </#list>
           </#list>


(6)遍历if else

 

1
2
3
4
5
6
7
  <#list ["星期一","星期二","星期三"] as n>
    <#if n!="星期一">
        ${n}
    <#else>
        您好今天是星期一
    </#if>
</#list>


(7)时间处理

1
2
3
    root.put("dt", new Date());
    年月时间:${dt?datetime}<br/>
    时间:${dt?time}




freemarker实现页面的静态化

一:FreeMarker的作用 页面所需要的数据动态绑定,并放入Map中,通过调用FreeMarker模板文件解析类process()方法完成静态页面的生成 1、 MVC框架中的Vie...
  • zhangrcxhqy
  • zhangrcxhqy
  • 2016年03月09日 17:00
  • 577

Freemarker 页面静态化详解

Freemarker的语言概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC...
  • lianmutian
  • lianmutian
  • 2016年08月03日 19:33
  • 981

springMVC freemarker实现页面静态化

最近在学习freemarker,这个模板技术已经很成熟,文档也很多。我研究了下利用它来实现页面静态化,静态化的好处你懂的,好了贴一下主要的代码。 首先是web.xml。 ...
  • wxhlqcl2010
  • wxhlqcl2010
  • 2015年02月05日 21:06
  • 4047

Freemarker商品详情页静态化服务调用处理

在商品详情页处理这里处理的时候,因为我项目基本上都是用的jsp来写的页面,但是对于一个大型的购物网站来说,要解决掉速度的问题,所以需要把jsp换成html,这里我们可以使用Freemarker模板引擎...
  • sdksdk0
  • sdksdk0
  • 2016年11月13日 21:19
  • 2902

Freemarker实现页面静态化cms

自己学习利用freemarker进行静态化的demo,旨在进行一点儿自我记录和分享交流,demo中做出了最简单的一个生产静态化页面和浏览生成的静态页面等的流程...
  • abudexiatian
  • abudexiatian
  • 2015年01月22日 15:42
  • 2886

基于SSM3框架使用FreeMarker模板生成静态页的实现

基于SSM3框架使用FreeMarker模板生成静态页的实现     通过之前的基于SSM3框架FreeMarker自定义指令(标签)实现这篇文章的介绍,我们对FreeMarker有了一个基本了解,...
  • StarLOVELeaf
  • StarLOVELeaf
  • 2016年12月08日 10:35
  • 1560

网上商城项目实战之Freemarker 页面静态化

FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写  l         FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应...
  • qq_31951571
  • qq_31951571
  • 2015年11月20日 17:08
  • 1269

FreeMarker页面静态化

目前的项目中需要对某些页面进行静态化,减轻服务器压力。前端是用FreeMarker编写的模板。在网上查阅的使用FreeMarker静态化页面的方案大致分为两种: 1.在controller层编写...
  • fangzhangsc2006
  • fangzhangsc2006
  • 2013年03月18日 15:13
  • 2216

页面静态化技术velocity与freemarker比较

相比较 FreeMarker 而言,Velocity 更加简单、轻量级,但它的功能却没有 FreeMarker 那么强大。  对于大部分的应用来说,使用 FreeMarker 比 Velocity ...
  • hdchenyue
  • hdchenyue
  • 2016年07月19日 10:40
  • 2606

页面静态化用memcache的思想去实现,会是什么效果那??

用memcache实现页面静态话的小实例,来自于一个突然的想法,就印证了一下,结果感觉在高并发情况下还不错,只是一种思想,具体项目中很多优化方法都不错,可以酌情使用。...
  • wyfhist
  • wyfhist
  • 2015年06月01日 23:53
  • 1454
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:11(maven+SSH)之Freemarker 页面静态化
举报原因:
原因补充:

(最多只允许输入30个字)