至于什么是freemarker,百度百科可查到。至于freemarker的褒贬,本人还没入门,无从说起。玩玩而已。。。
随便建立一个XXXX应用程序,导入freemarker的第三方包。下载地址:http://freemarker.sourceforge.net/
建立文件一,代码如下:
- 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
- <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格式。
- {userlist : [ <#list userList as user> #有待完善
- {name : ${user.name} , id:${user.id} }
- </#list> ],
- url : ${lastProduct.url} , name : ${lastProduct.name} }
输出到 test.html
- {userlist : [ {name : 王五 , id:123 } {name : 张三 , id:2345 } {name : 李四 , id:fgh } ], url : http://www.google.com , name : green hose }