package com.nfwork.dbfound.web.ui;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.TagSupport;
import com.nfwork.dbfound.core.Context;
import com.nfwork.dbfound.util.DataUtil;
import com.nfwork.dbfound.util.LogUtil;
import com.nfwork.dbfound.util.URLUtil;
import freemarker.template.Configuration;
import freemarker.template.Template;
public class IncludeLibrary extends TagSupport {
private static final long serialVersionUID = 1L;
private String templateName = "includeLibrary.ftl";
private Configuration cfg;
public int doEndTag() throws JspTagException {
JspWriter out = pageContext.getOut();
HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
HttpServletResponse response = (HttpServletResponse) pageContext.getResponse();
Context context = Context.getCurrentContext(request, response);
try {
cfg = FreemarkFactory.getConfig(pageContext.getServletContext());
// 定义Template对象
Template template = cfg.getTemplate(templateName);
// 定义数据
Map<String, Object> root = new HashMap<String, Object>();
String basePath = DataUtil.stringValue(request.getAttribute("basePath"));
if(DataUtil.isNull(basePath)){
basePath = URLUtil.getBasePath(request);
context.setRequestData("basePath", basePath);
}
root.put("basePath", basePath);
template.process(root, out);
} catch (Exception e) {
LogUtil.error(e.getMessage(), e);
}
return EVAL_PAGE;
}
}