@JFinal 你好,想跟你请教个问题:
我想在render之前拿到生成的内容,然后保存下来!这个应该怎么做才能拿到
setAttr("DyghPage", res);//这里取到渲染后的视图内容,然后保存到文件render("dygh_list_view.html");
期待新版出现
参考 FreemarkerRender.render() 方法中的代码,将 template.process(root, writer); 这行代码中的第二个参数直接换成文件输出的 writer即可。
jfinal 下一版本直接提供此支持。
你可以继承FreemarkerRender对象,重写render方法,或者重新实现一个Render;
这是FreeMarkerRender对象的render方法,这里的writer字符流是response的,你生成文件的话,再加个文件输出流,我觉得就可以了
public void render() { response.setContentType(contentType); Map root = new HashMap(); for (Enumeration<String> attrs=request.getAttributeNames(); attrs.hasMoreElements();) { String attrName = attrs.nextElement(); root.put(attrName, request.getAttribute(attrName)); } PrintWriter writer = null; try { Template template = config.getTemplate(view); writer = response.getWriter(); template.process(root, writer); // Merge the data-model and the template } catch (Exception e) { throw new RenderException(e); } finally { if (writer != null) writer.close(); } }
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(3)
期待新版出现
参考 FreemarkerRender.render() 方法中的代码,将 template.process(root, writer); 这行代码中的第二个参数直接换成文件输出的 writer即可。
jfinal 下一版本直接提供此支持。
你可以继承FreemarkerRender对象,重写render方法,或者重新实现一个Render;
这是FreeMarkerRender对象的render方法,这里的writer字符流是response的,你生成文件的话,再加个文件输出流,我觉得就可以了