使用Spring在JSP中显示图像

时间:2014-04-29 10:56:29

标签: java database spring jsp

我正在尝试在注入的jsp中显示图像。 我上传并将图像存储在数据库中,但不知道如何在jsp中检索和显示。 我的控制器:

@RequestMapping(value = "/ver2", method = RequestMethod.GET)
public void ver2(HttpSession session, HttpServletResponse response) {
    OutputStream oImage;
    Item item10 = itemRepository.findOne(11);

    try {
        byte[] photo = item10.getImagen();
        response.setContentType("image/jpeg, image/jpg, image/png, image/gif");
        oImage = response.getOutputStream();
        oImage.write(photo);
        oImage.flush();
        oImage.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

使用此代码,我显示全屏,我需要注入jsp。有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

您需要将String中的Base64编码图像字节返回到JSP页面并使用:

<img src="data:image/png;base64,${yourBase64EncodedBytesString}"/>

显示图像。

使用Apache Commons Codec执行Base64编码。

所以对于例如:

String yourBase64EncodedBytesString = new String(Base64.encodeBase64(content));

将其设置为例如作为请求属性:

request.setAttribute("yourBase64EncodedBytesString", yourBase64EncodedBytesString);

在JSP页面中检索:

<img src="data:image/png;base64,${requestScope['yourBase64EncodedBytesString']}"/>