【发布时间】:2011-05-24 12:49:35
【问题描述】:
我有一个应该显示一些图像的网络应用程序 (JSF 2.0)。
我读入this 线程并实现了一个图像servlet 来将图像发送到客户端。 问题是,我没有使用数据库,也没有使用硬盘驱动器上的固定位置,只是一个返回 byte[] 的支持 java 方法(为了讨论,假设它是动态生成的)
我想知道这个问题是否有“标准”解决方案,即如何在网页上显示动态生成的图像?
更新
我最终决定使用RichFacesMediaOutput 组件。
在我看来,标记为正确的答案在大多数情况下更稳健、更好。
【问题讨论】:
-
图像的字节来自数据库、文件、内存还是其他任何地方都没有关系。浏览器只需要字节和内容类型。你到底面临什么问题?
-
@JB 获取
<h:graphicImage>以显示来自支持 bean 方法返回的byte[]的图像。 -
您可以为生成的图像生成一个唯一的 ID(计数器就足够了),将图像存储在地图中,由该键索引,并将该 ID 作为 URL 的参数h:graphicImage 中使用的图像 servlet。然后,servlet 将使用密钥从地图中获取图像,并提供图像。