?
FreeMarker是一個模板引擎,一個基于模板生成文本輸出的通用工具,使用純Java編寫
???????? FreeMarker被設計用來生成HTML Web頁面,特別是基于MVC模式的應用程序
???????? 雖然FreeMarker具有一些編程的能力,但通常由Java程序準備要顯示的數據,由FreeMarker生成頁面,通過模板顯示準備的數據(如下圖)
???????? FreeMarker不是一個Web應用框架,而適合作為Web應用框架一個組件
???????? FreeMarker與容器無關,因為它并不知道HTTP或Servlet;FreeMarker同樣可以應用于非Web應用程序環境
???????? FreeMarker更適合作為Model2框架(如Struts)的視圖組件,你也可以在模板中使用JSP標記庫
???我們可以使用freemaker制作需要生成的靜態頁面樣式。然后可利用動態綁定數據,將數據綁定到
一個simpleHash中后,使用template.process()生成一張靜態頁面。或者其他頁面的。
然后寫到文件系統中。利用這種機制我們就可以輕松的實現模板生成靜態頁面了。
public static String xmlGenerate(TableDecorator table)throws Exception{
??StringWriter writer = new StringWriter();
??FreemakerEngine engine = FreemakerEngine.getInstance();
??freemarker.template.Template template = engine.getTemplate("hibernate.ftl");
??SimpleHash model = new SimpleHash();
??model.put("table", table);
??template.process(model, writer);
??ByteArrayOutputStream os = new ByteArrayOutputStream();
??os.write(writer.getBuffer().toString().getBytes());
??os.flush();
??os.close();
??return new String(os.toByteArray());
?}