1. 程式人生 > >從零學習freemarker(2)給模板傳遞引數的測試

從零學習freemarker(2)給模板傳遞引數的測試

原文:http://www.java2000.net/p7841

程式程式碼
 

  1. package freemarker;
  2. import java.io.File;
  3. import java.io.FileOutputStream;
  4. import java.io.OutputStreamWriter;
  5. import java.io.Writer;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. import freemarker.template.Configuration;
  9. import freemarker.template.Template;
  10. publicclass Test2 {
  11. private Configuration cfg;
  12. public Configuration getCfg() {
  13. return cfg;
  14.   }
  15. publicvoid init() throws Exception {
  16.     cfg = new Configuration();
  17.     cfg.setDirectoryForTemplateLoading(new File("bin/freemaker"));
  18.   }
  19. publicstaticvoid main(String[] args) throws Exception {
  20.     Test2 obj = new Test2();
  21.     obj.init();
  22.     Map root = new HashMap();
  23.     root.put("user""java2000.net");
  24.     Map latestProduct = new HashMap();
  25.     latestProduct.put("url""http://www.java2000.net");
  26.     latestProduct.put("name""Java世紀網");
  27.     root.put("latestProduct", latestProduct);
  28.     Template t = obj.getCfg().getTemplate("Test2.ftl");
  29.     Writer out = 
    new OutputStreamWriter(new FileOutputStream("Test2.html"), "GBK");
  30.     t.process(root, out);
  31.     System.out.println("Successfull................");
  32.   }
  33. }


模板
  1. <html>
  2. <head>
  3. <title>Welcome!</title>
  4. </head>
  5. <body>
  6. <h1>Welcome ${user}!</h1>
  7. <p>Our latest product:
  8. <ahref="${latestProduct.url}">${latestProduct.name}</a>!
  9. </body>
  10. </html>


執行結果

  1. <html>
  2. <head>
  3. <title>Welcome!</title>
  4. </head>
  5. <body>
  6. <h1>Welcome java2000.net!</h1>
  7. <p>Our latest product:
  8. <ahref="http://www.java2000.net">Java世紀網</a>!
  9. </body>
  10. </html>


分析:
資料結構為
(root)
|
+- user = "java2000.net"
|
+- latestProduct
|
+- url = "http://www.java2000.net"
|
+- name = "Java世紀網"

我們使用巢狀的Map給其傳遞引數








<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>