//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页面没有显示,如何在viewstudent.jsp中显示图像以及数据从DB获取后
答案 0 :(得分:1)
您似乎并不了解HTTP和HTML的工作原理。
要显示包含图像的HTML页面,您需要两个HTTP请求。第一个获取HTML页面。 HTML页面包含类似
的标记<img src="location_of_the_image" />
然后浏览器解析HTML,看到它包含img
标记,并向图像的位置发送第二个HTTP请求。对第二个HTTP请求的响应包含图像的字节。
所以你的控制器应该有两个方法:一个返回一个用于呈现HTML页面的ModelAndView,另一个用于加载图像的字节,设置内容类型,并将字节发送到响应OutputStream