我有一个应该显示一些图像的网络应用程序(JSF 2.0)。
我在this线程中读取并实现了一个图像servlet来将图像发送到客户端。 问题是,我没有在硬盘上使用数据库或固定位置,只是一个返回字节[]的后备java方法(对于讨论,让我们说它是在运行中生成的)
我想知道是否有针对此问题的“标准”解决方案,即如何在网页上显示动态生成的图像?
更新
我最终决定使用RichFaces
MediaOutput
组件。
在我看来,标记为正确的答案对于大多数情况来说更加强大和更好。
答案 0 :(得分:1)
将byte[]
代码生成逻辑从辅助bean移动到映像servlet。支持bean用于生成byte[]
的所有基本参数都应作为请求参数传递给映像servlet。 E.g。
<img src="imageservlet?param1=#{bean.param1}¶m2=#{bean.param2}" />
如果由于某种原因而确实不是一个选项,那么最好的办法就是让支持bean将这些映像临时存储在临时磁盘或会话上,然后将其标识符作为请求参数传递给所以servlet可以找到它并将其写入响应主体。