在這裏我就不多講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例子就完成了。