2012-08-03 60 views
4

我在後端生成了一個PDF文檔。我想用Spring MVC REST框架返回這個。 MarshallingView和ContentNegotiatingViewResolver應該是什麼樣子?Spring 3.0 Java REST返回PDF文檔

基於一個樣品,我發現,控制器必須將此作爲回報:

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

- 謝謝。

回答

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); 
    } 
} 
+3

+1 IOUtils.copy(的inputStream,OutputStream中) – Kowser 2012-08-04 06:35:02