2012-10-27 72 views
0

我想讀取來自數據庫的blob類型的圖像。我在控制器中的方法。只有圖像文件在JSP上顯示沒有其他東西blob圖像渲染在春天mvc 3.0

@RequestMapping(value = "/showDetails") 
public ModelAndView showDetails(@RequestParam("doc") int id, 
     HttpServletResponse responce) { 
    ModelAndView mView = new ModelAndView(); 
    File file = documentDao.getFileDetail(id); 
    byte[] bytes = null; 
    try { 
     OutputStream op = responce.getOutputStream(); 
     int length = (int) file.getContent().length(); 
     bytes = file.getContent().getBytes(1, length); 
     op.write(bytes); 
     op.flush(); 
     op.close(); 
     responce.setContentType("image/gif"); 
     mView.addObject("image", op); 
    } catch (Exception e1) { 
     e1.printStackTrace(); 
    } 

    mView.addObject("file", file); 
    mView.setViewName("filedetails"); 
    return mView; 
} 

上述方法在我的控制器類中。我想在JSP上渲染圖像以及一些文本。但只有圖像來自瀏覽器。

+1

我無法格式化此代碼。抱歉在閱讀/理解代碼時遇到問題。 – user1779379

+0

你還想顯示其他圖像嗎? – shazinltc

+0

我想顯示一些文字。 filedetails.jsp - >
----
user1779379

回答

1

你不能在Spring中這樣做(更精確地說在Servlet中)。創建兩個不同的控制器 - 一個將服務圖像,另一個將使用文本返回JSP頁面。要在頁面上獲取圖像,只需正確設置src的屬性值img標籤:應該指向第一個控制器。

+0

感謝您的回覆,請給我一個想法或者例如,我怎樣才能通過我的jsp頁面調用圖像控制器。你的幫助對我來說會有幫助。 – user1779379

+0

嗨,我製作了控制器中顯示圖像的新方法。 \t @RequestMapping( 「/圖片/ {圖像標識}」) \t @ResponseBody \t公共無效圖像(@PathVariable( 「image_id」)長ID){ \t \t \t INT \t = image_id(INT)ID; \t \t System.out.println(image_id); \t} 而在JSP圖像標籤 「HEIGHT =」 10" WIDTH = 「10」 ALIGN = 「右」> 但我的方法(圖)沒有在控制器類。 – user1779379

+0

調用當你​​調用' System.out.println'輸出到標準輸出(在你的情況下到服務器的日誌文件),而不是客戶端。爲了向客戶端顯示圖像,你應該得到輸出流並打印到它(也不要忘記設置正確有關詳細信息,請參閱以下文章:http://balusc.blogspot.com/2007/04/imageservlet.html –