Jakarta ee Struts2 JasperReport插件导出到XLS,带有多张表单
我使用的是struts2 jasperreports插件,效果很好。问题是我想传递exportParameters,但我不确定如何通过插件传递。我做到了:Jakarta ee Struts2 JasperReport插件导出到XLS,带有多张表单,jakarta-ee,web,struts2,jasper-reports,xls,Jakarta Ee,Web,Struts2,Jasper Reports,Xls,我使用的是struts2 jasperreports插件,效果很好。问题是我想传递exportParameters,但我不确定如何通过插件传递。我做到了: @Result( name = "XLS", value = "/<package>/Informe.jasper", type = JasperReportsResult.class, params = { "dataSource", "listaResultados", "for
@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();
}
它向我显示了这个例外:
位于的java.lang.NullPointerException
org.apache.struts2.views.jasperreports.JasperReportsResult.doExecute(JasperReportsResult.java:229)
在
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)位于
com.opensymphony.xwork2.DefaultActionInvocation.ExecuteSult(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.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
在
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
在
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
在
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
在
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
在
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
位于java.lang.Thread.run(未知源)
有人能帮我吗?多亏了评论()的帖子,我发现我的项目使用的是不支持此功能的旧版本
该项目使用struts2-jasperreports-plugin-2.0.11.1.jar,因此解决方案是使用iReport 3定义属性,如下所示:
net.sf.jasperreports.export.xls.
import(编辑/报告导入指令/新导入)通过这种方式,我得到了我想要的项目工作方式。您有更高或等于2.1.2的Struts版本吗?再看看这个:
"exportParameters", "exportParametersJR"