Как мне настроить Struts 2 для возврата сгенерированного PDF-файла?

#struts2

#struts2

Вопрос:

 <action name="trial_employee" 
        class="parity.action.TrialPrintEmployeeCopyAction">
  <result>/protected/trial_employee.pdf</result>
</action>
  

У меня есть класс действий, который генерирует PDF-файл для загрузки. Как мне настроить результат действия для возврата PDF-файла?

Вышеуказанное не работает, выдает ошибку 404, потому что pdf физически не находится на диске, он генерируется динамически.

Ответ №1:

Если он генерируется динамически, вы можете вернуть его в виде потока, например

 <result name="pdf  File" type="stream">
<param name="contentType">${contentType}</param>
</result>
  

более подробная информация здесь

Результат потока

Комментарии:

1. Не имеет значения, как он генерируется, вы также можете выполнять потоковую передачу из файловой системы.

2. @Dave: Согласен!!! я предложил этот способ, поскольку, если файл генерируется в файловой системе, мы можем использовать другой способ

3. да, к сожалению, у идиотов, которые изначально разработали эту штуку, она генерирует от 5 до 15 мегабайт PDF-файлов в памяти и передает их из памяти. все, что мне разрешено сделать, это преобразовать его в struts2. я понял, как это сделать с помощью массива байтов, но это некрасиво. очень, очень некрасиво.