至于什么是freemarker,百度百科可查到。至于freemarker的褒贬,本人还没入门,无从说起。玩玩而已。。。
随便建立一个XXXX应用程序,导入freemarker的第三方包。下载地址:http://freemarker.sourceforge.net/
建立文件一,代码如下:
- packagecom.zyeeda.www.Test;
- importjava.io.BufferedWriter;
- importjava.io.File;
- importjava.io.FileWriter;
- importjava.io.IOException;
- importjava.io.Writer;
- importjava.util.ArrayList;
- importjava.util.HashMap;
- importjava.util.List;
- importjava.util.Map;
- importfreemarker.template.Configuration;
- importfreemarker.template.DefaultObjectWrapper;
- importfreemarker.template.Template;
- publicclassFreeMarkerTest{
- publicstaticvoidmain(String[]args)throwsException{
- Configurationconfig=newConfiguration();
- try{
- config.setDirectoryForTemplateLoading(newFile("e://javasrc"));
- config.setObjectWrapper(newDefaultObjectWrapper());
- //拿到test.ftl的模板(相当于html模板)
- Templatetemplate=config.getTemplate("test.ftl","UTF-8");
- //创建数据模型
- Maproot=newHashMap();
- List<User>users=newArrayList<User>();//方式一:List。用于包装用户信息对象列表
- Useru1=newUser();
- u1.setId("123");
- u1.setName("王五");
- users.add(u1);
- Useru2=newUser();
- u2.setId("2345");
- u2.setName("张三");
- Useru3=newUser();
- u3.setId("fgh");
- u3.setName("李四");
- users.add(u2);
- users.add(u3);
- root.put("userList",users);//映射root
- Mapproduct=newHashMap();//方式二:单独映射键对。映射product
- root.put("lastProduct",product);
- product.put("url","http://www.google.com");
- product.put("name","greenhose");
- Mapnb=newHashMap();
- nb.put("name","标");
- nb.put("add","中昱达");
- root.put("mm",nb);
- //新建一个文件。
- Filefile=newFile("e://javasrc//test.html");
- if(!file.exists()){//不存在文件则创建该文件。
- //System.out.println("fileexist");
- file.createNewFile();
- }
- //创建该文件的输出字符流。
- Writerout=newBufferedWriter(newFileWriter(file));
- template.process(root,out);
- out.flush();
- }catch(IOExceptione){
- //TODOAuto-generatedcatchblock
- e.printStackTrace();
- }
- }
- }
注释只是个人的理解而已。。。如果错误,请指出。
在相应的位置建立一个模板文件:e://javasrc test.ftl
- <html>
- <head>
- <title>Welcome!</title>
- </head>
- <body>
- <#listuserListasuser>
- <h1>Welcome${user.name}!id:${user.id}</h1><br/>
- </#list>
- <p>Ourlatestproduct:
- <ahref="${lastProduct.url}">${lastProduct.name}</a>!
- <p>test1:${mm.name}test2:${mm.add}
- </body>
- </html>
还在入门的路上。。。
晚上无聊,对模板进行了修改。 然后,输出结果,就是最近经常看的Ext.data.JsonStore格式。
- {userlist:[<#listuserListasuser> #有待完善
- {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:greenhose}