?
FreeMarker是一個(gè)模板引擎,一個(gè)基于模板生成文本輸出的通用工具,使用純Java編寫
???????? FreeMarker被設(shè)計(jì)用來生成HTML Web頁面,特別是基于MVC模式的應(yīng)用程序
???????? 雖然FreeMarker具有一些編程的能力,但通常由Java程序準(zhǔn)備要顯示的數(shù)據(jù),由FreeMarker生成頁面,通過模板顯示準(zhǔn)備的數(shù)據(jù)(如下圖)
???????? FreeMarker不是一個(gè)Web應(yīng)用框架,而適合作為Web應(yīng)用框架一個(gè)組件
???????? FreeMarker與容器無關(guān),因?yàn)樗⒉恢繦TTP或Servlet;FreeMarker同樣可以應(yīng)用于非Web應(yīng)用程序環(huán)境
???????? FreeMarker更適合作為Model2框架(如Struts)的視圖組件,你也可以在模板中使用JSP標(biāo)記庫
???我們可以使用freemaker制作需要生成的靜態(tài)頁面樣式。然后可利用動(dòng)態(tài)綁定數(shù)據(jù),將數(shù)據(jù)綁定到
一個(gè)simpleHash中后,使用template.process()生成一張靜態(tài)頁面。或者其他頁面的。
然后寫到文件系統(tǒng)中。利用這種機(jī)制我們就可以輕松的實(shí)現(xiàn)模板生成靜態(tài)頁面了。
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());
?}
posted on 2007-03-20 11:17
安文豪 閱讀(2863)
評(píng)論(0) 編輯 收藏