11(maven+SSH)网上商城项目实战之Freemarker 页面静态化
FreeMarker是一個模板引擎,一個基于模板生成文本輸出的通用工具,使用純Java編寫?
l?????????FreeMarker被設計用來生成HTML?Web頁面,特別是基于MVC模式的應用程序?
l?????????雖然FreeMarker具有一些編程的能力,但通常由Java程序準備要顯示的數據,由FreeMarker生成頁面,通過模板顯示準備的數據(如下圖)
模板?+?數據模型?=?輸出
l?????????FreeMarker不是一個Web應用框架,而適合作為Web應用框架一個組件?
l?????????FreeMarker與容器無關,因為它并不知道HTTP或Servlet;FreeMarker同樣可以應用于非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} |
附件:http://down.51cto.com/data/2367126
本文轉自 l363130002 51CTO博客,原文鏈接:http://blog.51cto.com/liuyj/1714711
總結
以上是生活随笔為你收集整理的11(maven+SSH)网上商城项目实战之Freemarker 页面静态化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python字典get()方法的实际应用
- 下一篇: Nis服务器主从安装配置