Struts2 jasperreports - передача параметров экспорта - PullRequest
2 голосов
/ 24 ноября 2011

Я использую плагин struts2 jasperreports, и он работает хорошо.Проблема в том, что я хочу передать exportParameters, и я не уверен, как это сделать через плагин.

1 Ответ

6 голосов
/ 24 ноября 2011

Какую версию 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>

рамки отдыха позаботятся Надеюсь, это поможет вам

...