网页:显示字节数组中的图像

时间:2012-03-22 17:12:43

标签: arrays image jsf oracle-adf

我有一个图像byte[],此byte[]来自LDAP [Oracle Open LDAP身份验证提供程序],我需要将此图像显示在页面中。

我该怎么做?

我可以使用javax.faces.context.ResponseWriter撰写byte[],或者我应该从java.io.OutputStream中提取javax.faces.context.FacesContext的实例,并将byte[]写入页面。

如果可以使用这些方法中的任何一种,那么我可以创建自定义JSF标记,显示图像,并尝试在encodeBegin(FacesContext context, UIComponent component) javax.faces.render.Renderer方法中执行图像创建},byte[]将作为属性发送。

我可以将Servlet用于此目的吗?实际上我不知道我是否可以从source的{​​{1}}属性调用Servlet。

如果我得到你的建议,对我很有帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

  

我有一个图像byte [],这个byte []来自LDAP [Oracle Open LDAP Authentication Provider],我需要在页面中显示这个图像。

您需要在HTTP级别考虑这一点。 页面不包含图像(至少除非您要直接嵌入数据,这对于非微小图像几乎总是一个坏主意)。它包含图像的 URL

您应该使用适当的img生成href标记,这样您就可以在浏览器发出请求时获取数据。为简单起见,这几乎肯定应该是一个单独的servlet - 理想情况下响应包含“合理”文件名的请求(具有合理的图像扩展名)。

此时,您获取图像的数据并将其写入Writer,而不是OutputStream作为响应,因为它是二进制数据。