spring mvc 3.0中的水滴图像渲染
我正在尝试读取来自数据库的blob类型图像。我在控制器中的方法。只有图像文件显示在JSP上,没有其他显示spring mvc 3.0中的水滴图像渲染,spring,jsp,servlets,Spring,Jsp,Servlets,我正在尝试读取来自数据库的blob类型图像。我在控制器中的方法。只有图像文件显示在JSP上,没有其他显示 @RequestMapping(value = "/showDetails") public ModelAndView showDetails(@RequestParam("doc") int id, HttpServletResponse responce) { ModelAndView mView = new ModelAndView(); File fi
@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上呈现图像和一些文本。但浏览器中只有图像。在Spring中不能这样做(更准确地说,在servlet中)。创建两个不同的控制器——一个提供图像,另一个返回带有文本的JSP页面。要在页面上获取图像,只需正确设置
img
标签的src
属性值:它应该指向第一个控制器。我无法格式化此代码。很抱歉,在阅读/理解代码时遇到问题。除了图像之外,您还想显示什么?我想显示一些文本。filedetails.jsp-->---
由@Slava Semushin给出的答案是正确的。如果未渲染图像,则可能是图像的路径不正确。例如,如果您在上下文中运行,则不应使用
/image?
,而应使用/yourapp/image?
(或者更好-使用谢谢您的回复,您能给我一些想法或示例吗,我如何通过我的jsp页面调用image controller。您的帮助对我来说将是完整的。您好,我在controller中创建了显示图像的新方法。@RequestMapping(“/images/{imageid}”)@ResponseBody public void image(@PathVariable(“image_id”)long id){int image_id=(int)id;System.out.println(image_id);}而在JSP中,图像标记是“height=”10“width=”10“align=”right>,但我的方法(image)没有在控制器类中调用。当调用System.out.println
时,输出将转到标准输出(在您的情况下,到服务器的日志文件)而不是客户端。要向客户端显示图像,您应该获取输出流并打印到其中(也不要忘记设置正确的标题)。有关详细信息,请参阅以下文章:您可以共享您的gmail id吗?我可以与您分享我当前的问题。现在我无法调用任何简单的servlet或控制器类中的任何方法(我使用注释{@RequestMapping})。如果你愿意分享你的id,对我来说很容易。什么是“gmail id”?你是说电子邮件地址吗?它应该显示在我的个人资料中,只需单击我的尼克。