2013-10-21 68 views
0
//My Controller which handles image and Data 
    @RequestMapping(value = "/student/edit/{id}/", method = RequestMethod.GET) 
     public ModelAndView editStudent(@PathVariable Integer id, 
             ModelMap model, 
             HttpServletRequest request,HttpServletResponse response) throws IOException { 

     Student student=studentservice.retieveStudent(id); 
       byte[] studentImage = student.getUserImage(); 
       response.setContentType("image/png"); 
       response.getOutputStream().write(studentImage); 
       response.getOutputStream().flush(); 
       model.addAttribute("studentImage","studentImage") 
       model.addAttribute("studentName",student.getStudentName); 
       model.addAttribute("studentDetails",student.getStudentDetails); 
      return new ModelAndView("viewstudent"); 
     } 

student.jsp 
<a href=student/edit/12><h1>Edit<h1></a> 


viewstudent.jsp 
<div> 
<table> <tr><td>Student Name=${studentName}</td></tr> 
      <tr><td>StudentDetails=${studentDetails}</td></tr> 
    <img src=data:image/jpeg;base64,"<c:out value='${studentImage}'/>" alt="my image" /> 
</table> 

顯示在JSP圖像當我在鏈接編輯只圖像越做越瀏覽器和viewstudent.jsp頁面沒有得到displayd所示單擊,我如何在viewstudent.jsp一同顯示圖像與數據從DB提取後如何使用Spring MVC

+0

您附加到「studentImage」的是一個字符串。 model.addAttribute( 「studentImage」, 「studentImage」)。 – CHowdappaM

回答

1

你似乎不明白HTTP和HTML如何工作。

要顯示包含圖像的HTML頁面,您需要兩個HTTP請求。第一個獲得HTML頁面。 HTML頁面包含像

<img src="location_of_the_image" /> 

標籤然後,瀏覽器解析該HTML,發現它含有img標籤,並且第二sendsa HTTP請求發送到圖像的位置。對第二個HTTP請求的響應包含圖像的字節。

所以你應該在你的控制器中有兩個方法:一個返回一個用於渲染HTML頁面的ModelAndView,第二個加載圖像的字節,設置內容類型,並將字節發送給響應的OutputStream。