Как получить содержимое PDF (обслуживается контроллером Spring MVC метод), чтобы появиться в новом окне

Я новичок в 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-файл отображался в отдельном окне браузера.

РЕДАКТИРОВАТЬ: Я решил настроить Content-Disposition так, чтобы браузер отображал окно сохранения / открытия, в котором пользователь мог открывать Adobe (с потерей главной страницы браузера).

httpServletResponse.setHeader("Content-Disposition","attachment;filename=cool.pdf");

Спасибо всем!

7
задан nikiforovpizza 15 March 2018 в 20:58
поделиться