我正在使用struts2 jasperreports插件,效果很好。问题是我想传递exportParameters,我不知道如何通过插件来做到这一点。
答案 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,而不是如上所述使用其引用。
有关详细信息,请参阅此网址
**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>
休息框架会照顾 希望这会对你有所帮助