freemarker簡單的入門例子

來源:互聯網
上載者:User

     至於什麼是freemarker,百度百科可查到。至於freemarker的褒貶,本人還沒入門,無從說起。玩玩而已。。。

隨便建立一個XXXX應用程式,匯入freemarker的第三方包。:http://freemarker.sourceforge.net/

建立檔案一,代碼如下:

Code:
  1. package com.zyeeda.www.Test;  
  2.   
  3. import java.io.BufferedWriter;  
  4. import java.io.File;  
  5. import java.io.FileWriter;  
  6. import java.io.IOException;  
  7. import java.io.Writer;  
  8. import java.util.ArrayList;  
  9. import java.util.HashMap;  
  10. import java.util.List;  
  11. import java.util.Map;  
  12. import freemarker.template.Configuration;  
  13. import freemarker.template.DefaultObjectWrapper;  
  14. import freemarker.template.Template;  
  15.   
  16. public class FreeMarkerTest {  
  17.     public static void main(String[] args) throws Exception {  
  18.         Configuration config = new Configuration();  
  19.         try {  
  20.             config.setDirectoryForTemplateLoading(new File("e://javasrc"));  
  21.             config.setObjectWrapper(new DefaultObjectWrapper());  
  22.             //拿到test.ftl的模板(相當於html模板)  
  23.             Template template = config.getTemplate("test.ftl", "UTF-8");  
  24.             // 建立資料模型  
  25.             Map root = new HashMap();  
  26.             List<User> users = new ArrayList<User>();//方式一:List。用於封裝使用者資訊對象列表  
  27.             User u1 = new User();  
  28.             u1.setId("123");  
  29.             u1.setName("王五");  
  30.             users.add(u1);  
  31.               
  32.             User u2 = new User();  
  33.             u2.setId("2345");  
  34.             u2.setName("張三");  
  35.             User u3 = new User();  
  36.             u3.setId("fgh");  
  37.             u3.setName("李四");  
  38.             users.add(u2);  
  39.             users.add(u3);  
  40.               
  41.             root.put("userList", users); //映射root  
  42.             Map product = new HashMap();  //方式二:單獨映射鍵對。映射product  
  43.             root.put("lastProduct", product);  
  44.             product.put("url", "http://www.google.com");  
  45.             product.put("name", "green hose");  
  46.               
  47.             Map nb=new HashMap();  
  48.             nb.put("name", "標");  
  49.             nb.put("add", "中昱達");  
  50.             root.put("mm",nb);  
  51.               
  52.             //建立一個檔案。  
  53.             File file = new File("e://javasrc//test.html");  
  54.             if (!file.exists()) {//不存在檔案則建立該檔案。  
  55.                 // System.out.println("file exist");  
  56.                 file.createNewFile();  
  57.             }  
  58.             //建立該檔案的輸出字元流。  
  59.             Writer out = new BufferedWriter(new FileWriter(file));  
  60.             template.process(root, out);  
  61.             out.flush();  
  62.         } catch (IOException e) {  
  63.             // TODO Auto-generated catch block  
  64.             e.printStackTrace();  
  65.         }  
  66.     }  
  67. }  

注釋只是個人的理解而已。。。如果錯誤,請指出。

在相應的位置建立一個模板檔案:e://javasrc    test.ftl

Code:
  1. <html>      
  2.   <head>      
  3.     <title>Welcome!</title>      
  4.   </head>      
  5.   <body>      
  6.     <#list userList as user>      
  7.         <h1>Welcome ${user.name}!  id:${user.id}</h1><br/>      
  8.     </#list>      
  9.     <p>Our latest product:      
  10.     <a href="${lastProduct.url}">${lastProduct.name}  </a>!     
  11.     <p>test1:${mm.name} test2:${mm.add}   
  12.   </body>      
  13. </html>   

還在入門的路上。。。

     晚上無聊,對模板進行了修改。 然後,輸出結果,就是最近經常看的Ext.data.JsonStore格式。

Code:
  1. {userlist : [ <#list userList as user>      #有待完善
  2.                   {name : ${user.name} , id:${user.id} }    
  3.               </#list>  ],     
  4.     url : ${lastProduct.url} , name : ${lastProduct.name} }  

輸出到 test.html

Code:
  1. {userlist : [ {name : 王五 , id:123 } {name : 張三 , id:2345 } {name : 李四 , id:fgh } ], url : http://www.google.com , name : green hose }  

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.