【问题标题】:blob image render in spring mvc 3.0spring mvc 3.0中的blob图像渲染
【发布时间】:2012-10-17 13:26:51
【问题描述】:

我正在尝试读取来自数据库的 blob 类型图像。我在控制器中的方法。 JSP 上仅显示图像文件

@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 上渲染图像以及一些文本。但是浏览器中只有图像。

【问题讨论】:

  • 我无法格式化此代码。很抱歉在阅读/理解代码时遇到问题。
  • 除了图片还想展示什么?
  • 我想显示一些文本。 filedetails.jsp -->
    ----
  • @Slava Semushin 给出的答案是正确的。如果您的图像未呈现,则可能是它的路径不正确。例如。如果您在上下文中运行,则不应使用/image?,而应使用/yourapp/image?(或更好-使用<c:url

标签: spring jsp servlets


【解决方案1】:

在 Spring 中你不能这样做(更准确地说是在 Servlet 中)。创建两个不同的控制器——一个将提供图像,另一个将返回带有文本的 JSP 页面。要在页面上获取图像,只需正确设置 img 标签的 src 属性值:它应该指向第一个控制器。

【讨论】:

  • 感谢您的回复,您能否给我一些想法或示例,我如何通过我的 jsp 页面调用图像控制器。你的帮助对我来说是最大的帮助。
  • 嗨,我在控制器中创建了显示图像的新方法。 @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="对">但是我的方法(图像)没有在控制器类中调用。
  • 当您调用 System.out.println 时,输出将进入标准输出(在您的情况下是服务器的日志文件)而不是客户端。要向客户端显示图像,您应该获取输出流并打印到它(也不要忘记设置正确的标题)。详情见以下文章:balusc.blogspot.com/2007/04/imageservlet.html
  • 你能分享你的 gmail-id 吗?我可以和你分享我目前的问题。现在我无法调用任何简单的 servlet 或控制器类中的任何方法(我使用注释 {@RequestMapping})。如果你愿意分享你的身份证,那对我来说很容易。
  • 什么是“gmail-id”?你说的是邮箱地址吗?它应该显示在我的个人资料中,只需点击我的昵称即可。
猜你喜欢
  • 2021-09-07
  • 2019-01-25
  • 2022-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-08
相关资源
最近更新 更多