Я новичок в Spring MVC, но впечатлен его возможностями.
Я использую 3.1.0-RELEASE, и мне нужно показать PDF в ответ на форму: отправка формы.
Вот (маленький) код, который я написал в контроллере:
@RequestMapping(value = "new_product", method = RequestMethod.POST, params = "print")
@ResponseBody
public void saveAndShowPDF(ModelMap map, ShippingRequestInfo requestInfo, HttpServletRequest request, HttpServletResponse httpServletResponse) throws IOException {
saveProductChanges(map, requestInfo, request, httpServletResponse);
httpServletResponse.setContentType("application/pdf");
byte[] pdfImage = productService.getPDFImage(requestInfo.getRequestId());
httpServletResponse.getOutputStream().write(pdfImage);
}
Этот код отправляет байт PDF [] обратно в исходное окно.
Как сделать так, чтобы PDF-файл отображался в отдельном окне, чтобы у меня все еще было оригинальное окно браузера для отображения некоторого другого содержимого? Лучшим способом было бы показать PDF-файл с помощью клиентской программы просмотра PDF (Adobe Reader, FoxIt и т. Д.), Но мне было бы хорошо, если бы PDF-файл отображался в отдельном окне браузера.
EDIT:
Я решил установить Content-Disposition таким образом, чтобы браузер отображал окно сохранения / открытия, где пользователь может открыть Adobe (с потерей главной страницы браузера).
httpServletResponse.setHeader("Content-Disposition","attachment;filename=cool.pdf");
Спасибо всем!