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

发布于 2024-12-23 18:38:48 字数 815 浏览 1 评论 0原文

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

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

有没有办法,也许使用 Stripes Tag lib 中的标签来加载事件(解决方案),该事件将从当前 ActionBean 加载图像并在加载页面时显示它?

我以为我可以从 User JavaBean 调用一个解析(事件)作为标签的 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();
             }
         };
}

提前致谢!

I am currently working with Stripes and I have an ActionBean that loads a specific User object JavaBean (Email, First Name, Last Name, Blob image) from my database according to a parameter in the url.
This ActionBean then forward to a JSP page that displays these information by using the ActionBean and accessing the User object instance (property of the ActionBean).

I have no problems displaying the text data (Email, First Name and Last Name) but I don't really know how I can display the Blob image (it's a byte array) dynamically.

Is there a way, maybe using a tag from the Stripes Tag lib to load a event (Resolution) that would load the image from the current ActionBean and display it when the page is loaded?

I thought I could call an Resolution (event) from the User JavaBean as the src of the tag but he doesn't seem to work...

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();
             }
         };
}

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

憧憬巴黎街头的黎明 2024-12-30 18:38:48

HTTP 和 HTML 不是这样工作的。请求用于加载 HTML 代码。此 HTML 代码包含各种 标记,并发出一个请求来加载每个图像。您必须生成带有 img 标记的 HTML,这些标记的 src 指向 Stripes 操作,该操作将加载图像并将其流式传输到响应。

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

That's not how HTTP and HTML works. A request is used to load the HTML code. This HTML code contains various <img src="..." /> tags, and a new request is made to load each image. You must generate HTML with img tags that have their src point to a Stripes action which will load the image and stream it to the response.

A StreamingResolution is the right approach to implement this action, but the action will have to be called from another request.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文