`
anson_xu
  • 浏览: 502793 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类

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;
  }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics