第一個freemarker例子

在這裏我就不多講freemarker是什麼了,網上有書籍可以去看。

下面我就說下如何寫第一個和freemarker相關的小例子,我也是在初學,文章的內容來自於視頻,說的不好的地方還請大家見諒。

1,在myeclipse裏創建一個web project,講freemarker.jar和junit.jar放入lib文件夾下。

2,在src下創建一個ftl包。在包下創建一個新文件01.ftl。ftl文件內容:你好:${username}

3,創建一個java文件FreeMarkerUtil.java。代碼如下:

package cn.app.freemarker;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;

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

/**
 * FreeMarker初學第一步
 * @author xuhf
 *
 */
public class FreeMarkerUtil {
	
	/**
	 * getTemplate("01.ftl")
	 * @param name
	 * @return
	 */
	public Template getTemplate(String name){
		//通過freemarker的Configuration讀取相應的ftl
		Configuration conf = new Configuration();
		//設置模板路徑(去哪裏讀取相應的ftl模板文件)
		conf.setClassForTemplateLoading(this.getClass(), "/ftl");
		Template template;
		try {
			//在模板文件目錄中找到名爲name的文件
			template = conf.getTemplate(name);
			return template;
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	/**
	 * 輸出
	 * @param name
	 * @param root
	 */
	public void print(String name,Map<String, Object> root){
		//通過template可以將模板文件輸出到相應的流中
		Template template = this.getTemplate(name);
		try {
			template.process(root, new PrintWriter(System.out));
		} catch (TemplateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

4,創建測試類,代碼如下:

package cn.app.junit;

import java.util.HashMap;
import java.util.Map;

import org.junit.Before;
import org.junit.Test;

import cn.cntv.freemarker.FreeMarkerUtil;

/**
 * 對freemarker進行測試類
 * @author xuhf
 *
 */
public class TestFreeMarker {
	
	FreeMarkerUtil fu;
	
	@Before
	public void setUp(){
		fu = new FreeMarkerUtil();
	} 
	
	@Test
	public void test01(){
		//1,創建數據模型
		Map<String, Object> root = new HashMap<String, Object>();
		//2,爲數據模型添加值
		root.put("username", "測試");
		//3,將數據模型和模板組合的數據輸出到控制檯
		fu.print("01.ftl", root);
	}
}


運行測試類,我們就可以在控制檯看到輸出:你好:測試。

這樣,我們的第一個freemarker例子就完成了。

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