春季3.0的Java REST回报PDF文档(Spring 3.0 Java REST return

2019-07-30 18:47发布

我在后台生成的PDF文档。 我想回到这个使用Spring MVC REST框架。 应MarshallingView和ContentNegotiatingViewResolver是什么样的?

基于样本,我发现,控制器必须以此为回报:

return new ModelAndView(XML_VIEW_NAME, "object", 
    byteArrayResponseContainingThePDFDocument);

-谢谢。

Answer 1:

你可以定义你的方法采取明确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);
    }
}


文章来源: Spring 3.0 Java REST return PDF document