anson_xu 发表于 2013-2-7 17:23:15

freemarker调用模板.ftl文件,生成静态shtml文件

public class ControllerServletS extends HttpServlet {
private Configuration cfg;
public void init() {
          // 初始化FreeMarker配置;
          // - 创建一个配置实例
      cfg = new Configuration();
          // - 设置模板目录.
      cfg.setServletContextForTemplateLoading(
                getServletContext(), "WEB-INF/tmpl");
          // - 设置模板延迟时间,测试环境设置为0,正是环境可提高数值.
      cfg.setTemplateUpdateDelay(0);
          // - 设置错误句柄
      cfg.setTemplateExceptionHandler(
                TemplateExceptionHandler.HTML_DEBUG_HANDLER);
      cfg.setObjectWrapper(ObjectWrapper.BEANS_WRAPPER);
          // - 设置默认模板编码
      cfg.setDefaultEncoding("gbk");
          // - 设置输出编码
      cfg.setOutputEncoding("gbk");
      cfg.setLocale(Locale.SIMPLIFIED_CHINESE);
    }
Template t = cfg.getTemplate(page.getTemplate());
//此处调模板直接输出到终端显示,不生成静态页面.
//Writer out = resp.getWriter();
//try {
                //t.process(page.getRoot(), out);
         //   } catch (TemplateException e) {
            //throw new ServletException(
                      //"加载FreeMarker模板出错", e);
         // }

此处生成静态页面
try{
Template t=cfg.getTemplate(templateFileName);
File afile=new File(htmlFilePath+htmlFileName);
Writer out=new OutputStreamWriter(new FileOutputStream(afile),"GB2312");
StringWriter write=new StringWriter();
write.flush();
t.process(propMap, out);
System.out.println(write.toString());
}catch(TemplateException e){
logger.error("error"+templateFileName,e);
return false;
}catch(IOException e){
logger.error("error"+htmlFileName,e);
return false;
}
}
页: [1]
查看完整版本: freemarker调用模板.ftl文件,生成静态shtml文件