我有一个web应用程序(JSF 2.0),应该会显示一些图像。
我阅读了这个线程,并实现了一个向客户端发送图像的图像servlet。问题是,我没有使用数据库,也没有在硬盘上使用固定位置,只是一个返回字节[]的支持java方法(为了讨论,假设它是动态生成的)
我想知道这个问题是否有一个"标准"的解决方案,即,如何在网页上显示动态生成的图像?
更新我最终决定使用RichFaces
MediaOutput
组件。在我看来,被标记为正确的答案在大多数情况下都更稳健、更好。
将byte[]
代码生成逻辑从backingbean移动到映像servlet。backingbean用于生成byte[]
的所有基本参数都应该作为请求参数传递给映像servlet。例如
<img src="imageservlet?param1=#{bean.param1}¶m2=#{bean.param2}" />
如果由于某种原因,真的不是一个选项,那么最好让backingbean将这些映像临时存储在临时磁盘或会话上,然后将其标识符作为请求参数传递,以便servlet能够找到它并将其写入响应体。