用freemarker生成html小例子

同學接到一個做網站美工的小項目,沒有邏輯處理的頁面和數據庫操作,這樣對於我們這種程序研發人員反而還比較棘手。。

 

上網搜了一下有沒有偷懶的方法,發現了freemarker。。可以根據java代碼生成html文件的好東東。

 

二話不說,下載源代碼。freemarker-2.3.16.tar.gz,下了這個最新的版本。解壓後,有了需要的jar包-------freemarker.jar。

 

先來看個小例子吧!在源碼的examples文件裏,找到一個模板文件Test.ftl。拷出來修改其爲以下內容:

 

<#macro greet person,website>
   Hello ${person}! Your Website is ${website}.
</#macro> 
  
<html>   
<head>   
<title>Hello World</title>
</head> 
  
<body>   
<@greet person="Sfeve" website="http://sfeve.iteye.com"/>   
</body>   
</html> 

 

 大家隨便一看應該就能明白個八九成吧。。。

 

再寫個Main函數測試一下!

 

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;

public class Test {
	public static void main(String[] args) throws Exception {
		Configuration cfg = new Configuration();
		
		cfg.setDirectoryForTemplateLoading(new File("bin"));  //設置讀取模板文件的目錄
		
		Template t = cfg.getTemplate("Test.ftl");  //讀取文件名爲Test.ftl的模板
		
		Map root = new HashMap();  //存儲數據
		
		Writer out = new OutputStreamWriter(new FileOutputStream(
				"Test.html"), "GBK");  //輸出流
		
		t.process(root, out); //動態加載root中的數據到Test.html。數據在模板中定義好了。
		
		System.out.println("Create successfully!");
	}
}

 

運行,即在當前文件目錄下生成了名爲Test.html的文件,其代碼如下:

 

 

<html>   
<head>   
<title>Hello World</title>
</head> 
  
<body>   
   Hello Sfeve! Your Website is http://sfeve.iteye.com.   
</body>   
</html> 

 

很爽吧,更多精彩功能有待發掘。。。

 

PS:模板文件(這裏是Test.ftl)一定要放到測試函數指定的目錄裏哦!否則會報找不到文件的異常。附件是源碼和MyEclipse的freemarker插件。插件的使用方法就不磨嘰了~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章