freemarker简单的入门例子

至于什么是freemarker,百度百科可查到。至于freemarker的褒贬,本人还没入门,无从说起。玩玩而已。。。

随便建立一个XXXX应用程序,导入freemarker的第三方包。下载地址:http://freemarker.sourceforge.net/

建立文件一,代码如下:

Code:
  1. packagecom.zyeeda.www.Test;
  2. importjava.io.BufferedWriter;
  3. importjava.io.File;
  4. importjava.io.FileWriter;
  5. importjava.io.IOException;
  6. importjava.io.Writer;
  7. importjava.util.ArrayList;
  8. importjava.util.HashMap;
  9. importjava.util.List;
  10. importjava.util.Map;
  11. importfreemarker.template.Configuration;
  12. importfreemarker.template.DefaultObjectWrapper;
  13. importfreemarker.template.Template;
  14. publicclassFreeMarkerTest{
  15. publicstaticvoidmain(String[]args)throwsException{
  16. Configurationconfig=newConfiguration();
  17. try{
  18. config.setDirectoryForTemplateLoading(newFile("e://javasrc"));
  19. config.setObjectWrapper(newDefaultObjectWrapper());
  20. //拿到test.ftl的模板(相当于html模板)
  21. Templatetemplate=config.getTemplate("test.ftl","UTF-8");
  22. //创建数据模型
  23. Maproot=newHashMap();
  24. List<User>users=newArrayList<User>();//方式一:List。用于包装用户信息对象列表
  25. Useru1=newUser();
  26. u1.setId("123");
  27. u1.setName("王五");
  28. users.add(u1);
  29. Useru2=newUser();
  30. u2.setId("2345");
  31. u2.setName("张三");
  32. Useru3=newUser();
  33. u3.setId("fgh");
  34. u3.setName("李四");
  35. users.add(u2);
  36. users.add(u3);
  37. root.put("userList",users);//映射root
  38. Mapproduct=newHashMap();//方式二:单独映射键对。映射product
  39. root.put("lastProduct",product);
  40. product.put("url","http://www.google.com");
  41. product.put("name","greenhose");
  42. Mapnb=newHashMap();
  43. nb.put("name","标");
  44. nb.put("add","中昱达");
  45. root.put("mm",nb);
  46. //新建一个文件。
  47. Filefile=newFile("e://javasrc//test.html");
  48. if(!file.exists()){//不存在文件则创建该文件。
  49. //System.out.println("fileexist");
  50. file.createNewFile();
  51. }
  52. //创建该文件的输出字符流。
  53. Writerout=newBufferedWriter(newFileWriter(file));
  54. template.process(root,out);
  55. out.flush();
  56. }catch(IOExceptione){
  57. //TODOAuto-generatedcatchblock
  58. e.printStackTrace();
  59. }
  60. }
  61. }

注释只是个人的理解而已。。。如果错误,请指出。

在相应的位置建立一个模板文件:e://javasrc test.ftl

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

还在入门的路上。。。

晚上无聊,对模板进行了修改。 然后,输出结果,就是最近经常看的Ext.data.JsonStore格式。

Code:
  1. {userlist:[<#listuserListasuser> #有待完善
  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:greenhose}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值