0

struts2 jasperreports プラグインを使用していますが、うまく機能します。問題は、exportParameters を渡したいということですが、プラグインを介してそれを行う方法がわかりません。やったよ:

@Result(
   name = "XLS", value = "/<package>/Informe.jasper", 
   type = JasperReportsResult.class, 
   params = {
      "dataSource", "listaResultados", 
      "format", "XLS",      
      "contentDisposition", "attachment;filename=\"Informe.xls\"", 
      "exportParameters", "exportParametersJR" 
   }
)

@SuppressWarnings("unchecked")
    public Map<String, String> getExportParametersJR(){
        JRXlsExporter jrXlsExporter = new JRXlsExporter();
        JrXlsExporter.setParameter(
               JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,Boolean.TRUE);
        return jrXlsExporter.getParameters();       
    }

試してみて、データソースを正しく取得しましたが、この行を追加すると

"exportParameters", "exportParametersJR"

この例外が表示されます:

java.lang.NullPointerException at org.apache.struts2.views.jasperreports.JasperReportsResult.doExecute(JasperReportsResult.java:229) at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178) at com.opensymphony. xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50) org .apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504) org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain) .java:202) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) org .apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve) .java:107) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) で org.apache.coyote. org.apache.tomcat.util.net の http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)。org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) の PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool. java:684) で java.lang.Thread.run (不明なソース)

誰でも私を助けることができますか?

4

1 に答える 1

0

Andrea Ligiosがコメントした投稿(パラメータを jaspereport に渡す) のおかげで、私のプロジェクトがこの機能をサポートしていない古いバージョンを使用していることがわかりました。

このプロジェクトでは struts2-jasperreports-plugin-2.0.11.1.jar を使用しているため、解決策は iReport 3 を使用してプロパティを定義することでした。

  1. インポートを追加net.sf.jasperreports.export.xls.*(編集 / レポート インポート ディレクティブ / 新規インポート)
    ここに画像の説明を入力

  2. net.sf.jasperreports.export.xls.one.page.per.sheet プロパティを追加し、レポートのカスタム プロパティ (編集 / カスタム プロパティ / 新規) で ir を true に設定します。 ここに画像の説明を入力

  3. 保存
  4. コンパイル
  5. .jasper ファイルをプロジェクトに置き換えます

このようにして、プロジェクトが思い通りに機能することがわかりました。

于 2013-01-10T07:55:27.843 に答える