发新话题
打印

求助管理员!

求助管理员!

ResourceOutputFactory 做什么用的,能不能给个简单的例子

TOP

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();
                }

TOP

针对你的代码,可以这样用
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

TOP

发新话题