Какую версию Struts2 вы используете, начиная с 2.1.2+
, она предоставляет функцию для предоставления 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 может включить шифрование и установить пароль пользователя для строки, известной создателю отчета.
Все, что вам нужно, чтобы определить карту для ваших параметров экспорта в вашем классе действий и предоставить его метод получения / установки, а не использовать его ссылку, как описано.
Подробнее см. На этом URL
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
установите свои свойства на этой карте и создайте для этого свойства геттер и сеттер
getExportParameters()
setExportParameters()
и в конфигурационном файле вашей стойки объявите карту следующим образом
<param name="exportParameters ">exportParameters </param>
рамки отдыха позаботятся
Надеюсь, это поможет вам