2
    //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>

当我单击链接编辑时,仅图像显示在浏览器上,viewstudent.jsp 页面未显示,如何在从 DB 获取后在 viewstudent.jsp 中显示图像以及数据

4

1 回答 1

3

您似乎不了解 HTTP 和 HTML 的工作原理。

要显示包含图像的 HTML 页面,您需要两个 HTTP 请求。第一个获取 HTML 页面。HTML页面包含一个标签,如

<img src="location_of_the_image" />

然后浏览器解析 HTML,发现它包含一个img标签,然后向图像的位置发送第二个 HTTP 请求。对第二个 HTTP 请求的响应包含图像的字节。

因此,您的控制器中应该有两种方法:一种返回用于呈现 HTML 页面的 ModelAndView,另一种用于加载图像的字节、设置内容类型并将字节发送到响应 OutputStream。

于 2013-10-21T10:59:46.557 回答