使用Stripes在jsp上动态显示图像(字节数组)

时间:2012-01-03 22:14:20

标签: image jsp stripes

我目前正在使用Stripes,我有一个ActionBean,它根据url中的参数从我的数据库加载特定的User对象JavaBean(电子邮件,名字,姓氏,Blob图像)。 然后,此ActionBean转发到JSP页面,该页面使用ActionBean并访问User对象实例(ActionBean的属性)来显示这些信息。

我在显示文本数据(电子邮件,名字和姓氏)方面没有任何问题,但我真的不知道如何动态显示Blob图像(它是一个字节数组)。

有没有办法,可能使用Stripes Tag lib中的标签加载一个事件(Resolution),该事件将从当前ActionBean加载图像并在加载页面时显示它?

我以为我可以从User JavaBean调用一个Resolution(事件)作为标记的src,但他似乎没有工作......

public Resolution loadPicture(){
    StreamingResolution sr = null;

       return sr = new StreamingResolution("image/jpeg") {
             public void stream(HttpServletResponse resp) throws Exception {
                 OutputStream os = resp.getOutputStream();
                 os.write(this.user.getBlob());
                 os.close();
             }
         };
}

提前致谢!

1 个答案:

答案 0 :(得分:3)

这不是HTTP和HTML的工作原理。请求用于加载HTML代码。此HTML代码包含各种<img src="..." />标记,并且请求用于加载每个图像。您必须生成带有img标记的HTML,这些标记的src指向Stripes操作,该操作将加载图像并将其传输到响应。

StreamingResolution是实现此操作的正确方法,但必须从另一个请求调用该操作。