利用freemarker生成靜態文件

最近在做mock數據的工作中,裏面涉及到給用戶返回json文件,但是json文件裏面的內容太多,如果完全通過java代碼來寫,這裏面會導致java代碼會非常臃腫,所以這裏面採用了利用freemarker來編寫模板文件,通過java填充裏面需要的數據,這裏寫了一個簡單的例子,怎麼通過freemarker來生成靜態文件,由於我需要生成的文件是個臨時文件,不過道理跟下面要說的生成靜態文件是一樣的。

直接上代碼,編寫java文件,用來指明文件模板和數據,

package com.neteae.web.test;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;

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

public class Freemarker {
	public static void main(String args[]){
		Map<String,String> data = new HashMap<String,String>();
		data.put("username", "小謝");//準備數據
		Configuration cfg =  new Configuration();//Configuration讀取模板文件
		try {
			cfg.setDirectoryForTemplateLoading(new File("WebContent/WEB-INF/ftl/test"));//制定模板文件的目錄
		    Template template = cfg.getTemplate("freemarker.ftl");//Template模板
		    Writer writer = new FileWriter(new File("freemarker.html"));//產生的文件
		   	template.process(data, writer);//將模板和數據產生
		   	writer.flush();//將數據從緩存中清空;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
準備模板文件
<html>
<head>
<title>測試下freemarker模板</title>
</head>

<body>
${username} 
</body>

</html>
利用freemarker來生成靜態文件,一是需要模板,二是需要數據,上面已經都編寫好了,下面運行下看下結果,刷新工程目錄;

打開freemarker.html文件,可以看到模板裏面的數據已經被替換成java文件中設置的數據了。


發佈了50 篇原創文章 · 獲贊 13 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章