Imagens BLOB em JSF

Pessoal

Eu ficaria grato se puderem me ajudar a exibir uma imagem Blob na minha página JSF.
O comando <h:graphicImage value="#{backingBean.varImagem}" /> não funcionou (sendo varImagem o nome do objeto tipo Blob, recuperado do banco).

Alguém poderia ajudar com isso?

Kra da uma olhada nisso axo q resove o seu problema.

http://myfaces.apache.org/sandbox/graphicImageDynamic.html

Olá,

O campo value só funciona para link de imagens e não para dados do tipo Blob, sugiro que se este componente passado aí não resolva seu problema, que você crie um componente para ele.

:okok:

Assim, não tenho a menor moral de implementar um componente.

Mas como eu utilizo o sugerido?
Tenho que importar alguma biblioteca do MyFaces?

Opa,

creio que você tenha que migrar o seu projeto da implementação padrão para o MyFaces, porque se eu não me engano o Sandbox tem algumas incompatibilidades.

Veja na documentação do Myfaces ou do próprio sanbox como fazer isto. Porque é muito complicado lhe falar tudo, já que são milhores de possibilidades e problemas que você pode encontrar.

:okok:

Pessoal.
Consegui a biblioteca que tem as classes que eu preciso pra implementar isso.
Mas ao iniciar o JBoss ele me dá um novo erro, não encontrando a classe org.apache.myfaces.component.html.ext.HtmlPanelGroup (possivelmente uma dependência na nova biblioteca que eu adicionei ao projeto).

Como eu sei qual biblioteca devo adicionar para utilizar esse outro pacote??

Cara! eu tava com o mesmo problema! eu resolvi usando duas estrategias mas soh vou falar da segunda que eh a mais massa…
Instalei o ajax4JSF e ele tem um componente chamado
<a4j:mediaOutput>
exe:
<!-- arquivo pagina.xhtml -->
<a4j:mediaOutput id=“bannerImage” element=“img” cacheable=“false” session=“true” createContent="#{bean.paintImage}" mimeType=“image/jpeg” />

<!-- arquivo bean.java -->
public void paintImage(OutputStream os, Object data) throws IOException{
byte[] imgBytes = /aqui vc pega os bytesdo blob/;
BufferedImage img = ImageIO.read(new BufferedInputStream(new byteArrayInputStream(imgBytes)));
ImageIO.write(img,“jpeg”,os);*/
}

Esse componente passa o Object data com oparametro, mas acho que da pra tirar. eu tive esse problema essa semana e acho que tem forma melhor de arrumar isso, mas como essa funcionou bem, eu fiquei tranquilo, hehehe

Olá,

Se tiver utilizando o Jboss Seam, pode usar isto:

<s:graphicImage value="#{Bean.image}"> <s:transformImageSize width="64" maintainRatio="true" /> </s:graphicImage>

Onde #{Bean.image} é: