免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
使用FreeMarker生成靜態(tài)頁原理和實例

上次我們探討了FreeMarker的模板組成,今天我們就來探討一下FreeMarker生成靜態(tài)頁原理。簡單說就是“模板”+“數(shù)據(jù)”=“靜態(tài)頁面輸出”,也就是將頁面中所需要的樣式放入FreeMarker模板文件中,然后將頁面所需要的數(shù)據(jù)動態(tài)綁定,并放入Map中,通過調用FreeMarker模板文件解析類process()方法完成靜態(tài)頁面的生成。如圖所示:

了解過FreeMarker生成靜態(tài)頁的原理之后,我們就來通過一個實例更直觀的去剖析一下。

一、 創(chuàng)建一個簡單的FreeMarker模板文件user.ftl

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta http-equiv=Content-Type content="text/html; charset=utf-8">
  5. <title>user.ftl</title>
  6. </head>
  7. <body>
  8. ${user.userName}
  9. ${user.userPassword}
  10. </body>
  11. </html>

二、 創(chuàng)建FreeMarker模板文件動態(tài)綁定的數(shù)據(jù)的對象類User.java

  1. public class User{
  2. private String userName;
  3. private String userPassword;
  4.  
  5. public String getUserName(){
  6. return userName;
  7. }
  8. public void setUserName(String userName){
  9. this.userName=userName;
  10. }
  11.  
  12. public String getUserPassword(){
  13. return userPassword;
  14. }
  15. public void setUserName(String userPassword){
  16. this.userPassword=userPassword;
  17. }
  18. }

三、 創(chuàng)建FreeMarker模板文件解析器工具類FreeMarkertUtil.java

  1. //省略包的導入
  2. Public class FreeMarkerUtil{
  3. //templatePath模板文件存放路徑
  4. //templateName 模板文件名稱
  5. //filename 生成的文件名稱
  6. public static void analysisTemplate(String templatePath,String templateName,
  7. String fileName,Map<?,?>root){
  8. try {
  9. Configuration config=new Configuration();
  10. //設置要解析的模板所在的目錄,并加載模板文件
  11. config.setDirectoryForTemplateLoading(new File(templatePath));
  12. //設置包裝器,并將對象包裝為數(shù)據(jù)模型
  13. config.setObjectWrapper(new DefaultObjectWrapper());
  14. //獲取模板,并設置編碼方式,這個編碼必須要與頁面中的編碼格式一致
  15. //否則會出現(xiàn)亂碼
  16. Template template=config.getTemplate(templateName,“UTF-8”);
  17. //合并數(shù)據(jù)模型與模板
  18. FileOutputStream fos = new FileOutputStream(fileName);
  19. Writer out = new OutputStreamWriter(fos,“UTF-8”);
  20. template.process(root, out);
  21. out.flush();
  22. out.close();
  23. } catch (IOException e) {
  24. e.printStackTrace();
  25. }catch (TemplateException e) {
  26. e.printStackTrace();
  27. }
  28. }
  29. }


四、 創(chuàng)建FreeMarker生成靜態(tài)頁面測試類ClientTest.java

  1. //省略包的導入
  2. public class ClientTest{
  3. public static void main(String[] args){
  4. //生成數(shù)據(jù)Map,實際使用中這里可以是數(shù)據(jù)庫查詢出的數(shù)據(jù)
  5. User user=new User();
  6. user.setUserName("Csyor");
  7. user.setUserPassword("123456");
  8. Map<String,Object> root=new HashMap<String, Object>();
  9. root.put("user", user);
  10. //下面是你定義模板的路徑
  11. String templatesPath="D:/MyEclipse/workspaces/freeMaker/templates";
  12. //下面是模板的名稱
  13. String templateFile="/user.ftl";
  14. //下面是靜態(tài)頁面輸出路徑
  15. String htmlFile=templatesPath+"/user.html";
  16. //根據(jù)模板生成靜態(tài)頁面
  17. FreeMarkertUtil.analysisTemplate(templatesPath,templateFile,htmlFile,root);
  18. }
  19. }

至此,一個簡單的FreeMarker生成靜態(tài)頁面的實例已經(jīng)完成,在你指定的靜態(tài)頁面路徑(htmlFile)中已經(jīng)有一個和你定義的模板(user.ftl)格式一樣的靜態(tài)文件。當然實際使用過程中不要忘記導入freemarker.jar,而且FreeMarker不只是能夠生產(chǎn)前臺view頁面,也可以根據(jù)實際情況生產(chǎn).java、.jsp、.xml等文件。

本文固定鏈接: http://www.csyor.com/185.html - 穿梭于偶然

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
FreeMarker模板學習筆記
FreeMarker如何生成靜態(tài)頁面
java利用freemarker生成html靜態(tài)頁面
Freemarker中遍歷List實例
Struts2第十七課:Struts2中使用FreeMarker充當表現(xiàn)層_李飛虎 jav...
Spring發(fā)送郵件簡單實例
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服