如何获取PDF内容(从Spring MVC控制器方法提供)以显示在新窗口中

Nin*_*hra 7 java browser 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);
}
Run Code Online (Sandbox Code Playgroud)

此代码将PDF byte []发送回原始窗口.

如何让PDF显示在单独的窗口中,以便我仍然可以使用原始浏览器窗口显示其他内容?最好的方法是使用客户端PDF查看程序(Adobe Reader,FoxIt等)显示PDF,但我可以将PDF显示在单独的浏览器窗口中.

编辑: 我决定设置Content-Disposition,以便浏览器显示一个保存/打开框,用户可以打开Adobe(丢失主浏览器页面).

httpServletResponse.setHeader("Content-Disposition","attachment;filename=cool.pdf");
Run Code Online (Sandbox Code Playgroud)

感谢大家!

Gri*_*Dog 5

target="_blank"form:form提交表单的标记中指定.