我目前正在使用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();
}
};
}
提前致谢!
答案 0 :(得分:3)
这不是HTTP和HTML的工作原理。请求用于加载HTML代码。此HTML代码包含各种<img src="..." />
标记,并且新请求用于加载每个图像。您必须生成带有img
标记的HTML,这些标记的src
指向Stripes操作,该操作将加载图像并将其传输到响应。
StreamingResolution是实现此操作的正确方法,但必须从另一个请求调用该操作。