0

私は struts2 アプリを開発しており、生成されたレポートをブラウザーに表示したいと考えています。ディスク上にレポートを正常に生成しましたが、今はブラウザで表示したいと考えています。ここにいくつかのコードがあります。

私のindex.jsp

<body>
<a href="HTML.action">Reporting</a>
</body>

私のアクションDataBeanList

public class DataBeanList extends ActionSupport {

      public ArrayList<DataBean> getDataBeanList() {
     ArrayList<DataBean> dataBeanList = new ArrayList<DataBean>();

      dataBeanList.add(produce("Manisha", "India"));
      dataBeanList.add(produce("Dennis Ritchie", "USA"));
      dataBeanList.add(produce("V.Anand", "India"));
      dataBeanList.add(produce("Shrinath", "California"));
      dataBeanList.add(produce("issam", "casa"));

      return dataBeanList;
   }

   /**
    * This method returns a DataBean object,
    * with name and country set in it.
    */
   private DataBean produce(String name, String country) {
      DataBean dataBean = new DataBean();
      dataBean.setName(name);
      dataBean.setCountry(country);
      return dataBean;
   }


public void exporte(){

String sourceFileName = "D://Test/workspace/ztest/WebContent/reports/jasper_report_template.jasper";
               // + "test/jasper_report_template.jasper";
        //D:\Test\workspace\ztest\WebContent\reports
          String printFileName = null;
          DataBeanList DataBeanList = new DataBeanList();
          ArrayList dataList = DataBeanList.getDataBeanList();
          JRBeanCollectionDataSource beanColDataSource =
             new JRBeanCollectionDataSource(dataList);

          Map parameters = new HashMap();
          try {
             printFileName = JasperFillManager.fillReportToFile(sourceFileName,
                parameters, beanColDataSource);
             if (printFileName != null) {
                /**
                 * 1- export to PDF
                 */
                JasperExportManager.exportReportToPdfFile(printFileName,
                      "D://sample_report.pdf");


             }
          } catch (JRException e) {
             e.printStackTrace();
          }
       }    
}
4

1 に答える 1

0

まず、レポートをストリームにエクスポートします。次のようになります。

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
            parameters, beanDataSource);
JasperExportManager.exportReportToPdfStream(jasperPrint, out);

次に、出力ストリームを入力ストリームに変換し、アクション内inputStreamでゲッター/セッターを使用して変数に割り当てます。そして、stream結果を使用するようにアクションを構成します。

<action ...>
  <result type="stream">
    <param name="inputName">inputStream</param>
    <param name="contentType">application/pdf</param>
    <param name="contentDisposition">attachment;filename="report.pdf"</param>
  </result>
</action>
于 2013-05-22T08:23:54.403 に答える