歡迎您光臨本站 註冊首頁

struts2與freemarker的集成

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

1、將freemarker的jar包添加到項目中

2、創建Action類

Java代碼

//此處的Configuration是freemarker包中的Configuration因為我們在開發中會用到
//各種框架例如hibernate,都會有Configuration,別引入錯了
private static Configuration cfg = new Configuration();
static {
//配置freemarker從什麼地方載入模板
cfg.setTemplateLoader(new ClassTemplateLoader(DocumentAction.class, "templates"));
//忽略異常
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER);
}

//獲取動態的表單
public String dynaForm(int workFlowId) {
try {
//載入與該流程定義相關的流程表單對象
FlowForm form = this.flowFormService.searchFlowFormByWorkFlowId(workFlowId);
if(form == null) {
return null;
}

//得到該流程表單所應用的模板
Template template = cfg.getTemplate(form.getTemplate());
Map root = new HashMap();
//將查詢出來的form對象通過map放到模板中,在模板的定義中會使用到,調用的時候會填充好數據顯示出來
root.put("form", form);

Writer out = new StringWriter();
//將根據模板生成頁面數據顯示到相應的頁面上
template.process(root, out);
return out.toString();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}

我們可以在需要顯示該模板的頁面中調用該方法,就會顯示出相應的模板內容:

Html代碼

<s:property value="dynaForm(workFlowId)" escape="false" />


[火星人 ] struts2與freemarker的集成已經有341次圍觀

http://coctec.com/docs/java/show-post-60120.html