jsf如何调用ireport生成的.jsper并显示出来的问题?

解决方案 »

  1.   

    <%@page contentType="application/pdf;charset=utf-8"%>
    <%@page import="net.sf.jasperreports.engine.*"%>
    <%@page import="net.sf.jasperreports.engine.util.*"%>
    <%@page import="net.sf.jasperreports.engine.export.*"%>
    <%@page import="java.io.*"%>
    <%@page import="java.util.*"%> 
    <%@page import="java.sql.*"%>
    <%@page import="com.scitel.framework.dao.*,com.scitel.framework.dao.impl.*"%>
    <%@page import="com.unicom.gzaddr.utils.*"%>
    <%@page import="oracle.jdbc.driver.*"%><html>
    <head>
    <title></title>
    <%
    try{
      
      File reportFile=new File(application.getRealPath("/reports/record1.jasper"));
      BaseDAO baseDAO=new BaseDAOImpl();
      DBConnect dbc=new DBConnect(null);
      Connection conn=dbc.getDBConnDS();
     
      Map parameters=new HashMap();
      parameters.put("title","中国城市列表");
      System.out.println("报表文件物理路径是->"+reportFile);
      byte[] bytes=JasperManager.runReportToPdf(reportFile.getPath(),parameters,conn);
      
      response.setContentType("application/pdf");
      response.setContentLength(bytes.length);
      ServletOutputStream outputStream=response.getOutputStream();
      //DataOutput output = new DataOutputStream( response.getOutputStream() ); 
      
      outputStream.write(bytes,0,bytes.length);
     outputStream.flush();
     outputStream.close();
        JasperPrint print = JasperFillManager.fillReport(reportFile.getPath(), parameters, conn);
        JasperPrintManager.printReport(print, true);
      //for(int i=0;i<bytes.length;i++){
      //  output.writeByte(bytes[i]);
      //}
      conn.close();
      }catch(Exception e){
        e.printStackTrace();
      }
    %>
    </head>
    <body>
    </body>
    </html>
    =========================================================================
    记得给我20分