Spring 3.0 Java REST返回PDF文档

Kri*_*n J 4 java rest model-view-controller spring

我在后端生成了一个PDF文档.我想使用Spring MVC REST框架返回此内容.MarshallingView和ContentNegotiatingViewResolver应该是什么样的?

根据我发现的样本,控制器将此作为返回:

return new ModelAndView(XML_VIEW_NAME, "object", 
    byteArrayResponseContainingThePDFDocument);
Run Code Online (Sandbox Code Playgroud)

-谢谢.

Bij*_*men 16

您可以定义您的方法以显式接收HttpServletRequestHttpServletResponse直接流式传输到HttpServletResponse,这样:

@RequestMapping(value="/pdfmethod", produces="application/pdf")
public void pdfMethod(HttpServletRequest request, HttpServletResponse response){
    response.setContentType("application/pdf");
    InputStream inputStream = null;
    OutputStream outputStream = null;
    try{
        inputStream = getInputStreamFromYourPdfFile();
        outputStream = response.getOutputStream();
        IOUtils.copy(inputStream, outputStream);
    }catch(IOException ioException){
        //Do something or propagate up..
    }finally{
        IOUtils.closeQuietly(inputStream);
        IOUtils.closeQuietly(outputStream);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • IOUtils.copy为+1(inputStream,outputStream) (3认同)