Board logo

标题: 求助管理员! [打印本页]

作者: leo_qiu    时间: 2010-4-12 17:48     标题: 求助管理员!

ResourceOutputFactory 做什么用的,能不能给个简单的例子
作者: leo_qiu    时间: 2010-4-12 17:50

try {
                        String file = (String) request.getParameter("file");
                        java.io.FileInputStream is = new java.io.FileInputStream(new java.io.File(file));
                        jatools.engine.ReportJob job = new jatools.engine.ReportJob(is);

                        response.setContentType("text/html;charset=UTF-8");
                        java.io.PrintWriter out_ = response.getWriter();

                        jatools.io.ResourceOutputFactory ff = null;
                        ff.createOutput(); //这个怎么弄呢                       
job.printAsDHTML(ff, out_);
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
作者: admin    时间: 2010-4-12 20:05

针对你的代码,可以这样用
jatools.io.ResourceOutputFactory ff = new ByteArrayResourceOutputFactory(request.getSession());   
job.printAsDHTML(ff, out_);






注:
当你以html格式输出报表时,有时需要生成一些临时文件,比如,报表中含有图片,统计图等,这些对象在html中,表现为img对象,如下所示

<img src='/resource/jatools001.png'>...

这些文件,究竟保存在何处呢? 这时,你就需要通过接口 jatools.io.ResourceOutputFactory 来告诉jor.  在jor中,有两个默认实现:

SessionedFileResourceOutputFactory 这个对象是指,临时文件保存在服务器的一个目录中,并且随session 过期自动删除临时文件

ByteArrayResourceOutputFactory 这个对象是指,临时文件保存在服务器的内存中,随着浏览器读取结束而自动在内存中清除. 这是jor的默认方式,参照 ReportWriter.java




欢迎光临 杰表技术论坛 (http://jatools.com/) Powered by Discuz! 6.1.0