Struts2 jasperreports - 传递导出参数

时间:2011-11-24 09:00:12

标签: struts2 jasper-reports

我正在使用struts2 jasperreports插件,效果很好。问题是我想传递exportParameters,我不知道如何通过插件来做到这一点。

1 个答案:

答案 0 :(得分:6)

2.1.2+开始,您使用的是哪个版本的Struts2,它提供了提供exportParameters

的功能

您只需在动作类

中的struts配置文件中添加以下条目或类似条目即可
<action name="myJasperTest" class="com.acme.test.action.JasperAction">
    <result name="success" type="jasper">
      <param name="location">foo.jasper</param>
      <param name="dataSource">mySource</param>
      <param name="exportParameters ">exportParameters </param>
    </result>
</action>

exportParameters - OGNL expression used to retrieve a map of JR exporter parameters from the value stack。导出参数用于自定义JR导出。例如,PDF导出可能启用加密并将用户密码设置为报表创建者已知的字符串。 您只需要在动作类中为导出参数定义地图,并提供其getter / setter,而不是如上所述使用其引用。

有关详细信息,请参阅此网址

jasperreports

**Update**

以下是他们在结果类型

中的表现
 exporter = new JRXlsExporter();
Map exportParams = (Map) stack.findValue(exportParameters);
             if (exportParams != null) {
                 LOG.debug("Found export parameters; adding to exporter parameters...");
                 exporter.getParameters().putAll(exportParams);
            }

所以他们所做的是他们试图在名称为map的值堆栈中找到exportParameters,如果他们发现他们正在添加它。那么必须在你的动作类中执行此操作

Map<String,String> exportParameters= //init your map here

在此地图中设置您的属性,并为此属性创建一个getter和setter

getExportParameters()
setExportParameters()

并在struts配置文件中声明地图如下

<param name="exportParameters ">exportParameters </param>

休息框架会照顾 希望这会对你有所帮助