【问题标题】:There is no result type defined for type 'dynamic-jasper' mapped with name 'success'没有为名称为“success”的“dynamic-jasper”类型定义结果类型
【发布时间】:2014-01-06 06:04:27
【问题描述】:

我正在尝试将 DynamicJasper 5.0.0 与 Struts 2.3.4 一起使用。我正在使用以下代码以 PDF 格式显示数据

在行动课中

try {
    FastReportBuilder drb = new FastReportBuilder();
    DynamicReport dr = drb.addColumn("Size", "size", String.class.getName(), 30).setTitle("Size List Report").setSubtitle("This report was generateed at" + new Date()).setUseFullPageWidth(true) //make colums to fill the page width
            .setPrintBackgroundOnOddRows(true).build();

    JRDataSource ds = new JRBeanCollectionDataSource(getSizeList());
    JasperPrint jp = DynamicJasperHelper.generateJasperPrint(dr, new ClassicLayoutManager(), ds);
    JasperViewer.viewReport(jp);    //finally display the report report   [/CODE]  
} catch (Exception e) {
    System.out.println("Exception");
}
return SUCCESS;

struts.xml:

<package name="expotpkg" extends="struts-default, json-default,jasperreports-default"> 
   <result-types>
        <result-type name="dynamic-jasper" class="ar.com.fdvs.dj.webwork.DJResult"/>
    </result-types>

<action name="DownloadSizePdf" class="iland.work.SizesAction" method="fetchDJ">
            <result name="success" type="dynamic-jasper">
                <param name="dynamicReport">dr</param>
                <param name="dataSource">sizeList</param>
                <param name="documentName">Dynamic Report generated with struts 2</param>
                <param name="parameters">params</param>
                <param name="format">PDF</param>
                <param name="layoutManager">classic</param>
            </result>
        </action>
   </package>

运行时出现以下错误

There is no result type defined for type 'dynamic-jasper' mapped with name 'success'.  Did you mean 'dynamicJasper'? - result - file:/E:/Project/cxn/cnx/build/web/WEB-INF/classes/struts.xml:571:58
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults(XmlConfigurationProvider.java:653)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:387)
    ... 20 more

我已包含以下 jar 文件

【问题讨论】:

  • 你还没有定义dynamic-jasper结果。
  • @AleksandrM 如何定义它

标签: java struts2 jasper-reports dynamic-jasper


【解决方案1】:

将此配置添加到您的包中

<result-types>
    <result-type name="dynamicJasper" class="ar.com.fdvs.dj.webwork.DJResult"/>
</result-types>

<action name="DownloadSizePdf" class="iland.work.SizesAction" method="fetchDJ">
    <result name="success" type="dynamicJasper">
        <param name="dynamicReport">dr</param>
        <param name="dataSource">sizeList</param>
        <param name="documentName">Dynamic Report generated with struts 2</param>
        <param name="parameters">params</param>
        <param name="format">PDF</param>
        <param name="layoutManager">classic</param>
    </result>
</action>

ActionSupport 类在包名com.opensymphony.xwork2 下。该错误是由于您与 Struts2 一起使用的插件的配置发生的,该配置与您使用的 Struts 版本不兼容。

【讨论】:

  • 你有不同版本的动态jasper。仅使用最新的 5.0。尝试将结果类型重命名为dynamicJasper
  • 不工作显示错误There is no result type defined for type 'dynamicJasper' mapped with name 'success'. Did you mean 'dynamicJasper'?
  • 我正在使用 DynamicJasper 5.0.0
  • 我定义了结果类型dynamicJasper,但它引用了webwork包中的一个类,插件本身用于WW框架。 Struts 2.3.4 版已经没有这样的包。该插件应该返工以与您使用的 Struts 版本兼容。
  • 你不能按原样使用它,你可以尝试重构它并通过更改包名来重建。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-20
  • 1970-01-01
  • 2021-11-19
  • 2016-03-03
  • 2021-04-14
  • 2021-11-13
相关资源
最近更新 更多