#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. я понял, как это сделать с помощью массива байтов, но это некрасиво. очень, очень некрасиво.