至於什麼是freemarker,百度百科可查到。至於freemarker的褒貶,本人還沒入門,無從說起。玩玩而已。。。
隨便建立一個XXXX應用程式,匯入freemarker的第三方包。:http://freemarker.sourceforge.net/
建立檔案一,代碼如下:
Code:
- package com.zyeeda.www.Test;
-
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.Writer;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import freemarker.template.Configuration;
- import freemarker.template.DefaultObjectWrapper;
- import freemarker.template.Template;
-
- public class FreeMarkerTest {
- public static void main(String[] args) throws Exception {
- Configuration config = new Configuration();
- try {
- config.setDirectoryForTemplateLoading(new File("e://javasrc"));
- config.setObjectWrapper(new DefaultObjectWrapper());
- //拿到test.ftl的模板(相當於html模板)
- Template template = config.getTemplate("test.ftl", "UTF-8");
- // 建立資料模型
- Map root = new HashMap();
- List<User> users = new ArrayList<User>();//方式一:List。用於封裝使用者資訊對象列表
- User u1 = new User();
- u1.setId("123");
- u1.setName("王五");
- users.add(u1);
-
- User u2 = new User();
- u2.setId("2345");
- u2.setName("張三");
- User u3 = new User();
- u3.setId("fgh");
- u3.setName("李四");
- users.add(u2);
- users.add(u3);
-
- root.put("userList", users); //映射root
- Map product = new HashMap(); //方式二:單獨映射鍵對。映射product
- root.put("lastProduct", product);
- product.put("url", "http://www.google.com");
- product.put("name", "green hose");
-
- Map nb=new HashMap();
- nb.put("name", "標");
- nb.put("add", "中昱達");
- root.put("mm",nb);
-
- //建立一個檔案。
- File file = new File("e://javasrc//test.html");
- if (!file.exists()) {//不存在檔案則建立該檔案。
- // System.out.println("file exist");
- file.createNewFile();
- }
- //建立該檔案的輸出字元流。
- Writer out = new BufferedWriter(new FileWriter(file));
- template.process(root, out);
- out.flush();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
注釋只是個人的理解而已。。。如果錯誤,請指出。
在相應的位置建立一個模板檔案:e://javasrc test.ftl
Code:
- <html>
- <head>
- <title>Welcome!</title>
- </head>
- <body>
- <#list userList as user>
- <h1>Welcome ${user.name}! id:${user.id}</h1><br/>
- </#list>
- <p>Our latest product:
- <a href="${lastProduct.url}">${lastProduct.name} </a>!
- <p>test1:${mm.name} test2:${mm.add}
- </body>
- </html>
還在入門的路上。。。
晚上無聊,對模板進行了修改。 然後,輸出結果,就是最近經常看的Ext.data.JsonStore格式。
Code:
- {userlist : [ <#list userList as user> #有待完善
- {name : ${user.name} , id:${user.id} }
- </#list> ],
- url : ${lastProduct.url} , name : ${lastProduct.name} }
輸出到 test.html
Code:
- {userlist : [ {name : 王五 , id:123 } {name : 張三 , id:2345 } {name : 李四 , id:fgh } ], url : http://www.google.com , name : green hose }