TwitterTicker

martes, 15 de abril de 2014

Imagenes fuera del Context con PrimeFaces

En estos dias me encuentro programando una aplicación, la cual tiene que mostrar imágenes que estan fuera del contexto de mi aplicación web.

Estuve probando con el componente <p:graphicImage> de primeFaces pasándole sólo el nombre de la imagen y la ruta. Cuál fue mi sorpresa que no mostraba la imagen sólo el texto que incluía en la propiedad title.

Este era el codigo:


Al googlear un rato encontré que al parecer el componente <p:graphicImage> necesita recibir en la propiedad value un objeto StreamedContent, el cual, a continuación muestro cómo lo implemente:

En el managedBean:

El metodo prepareImage se puede mandar llamar antes de mostrar la imagen y una vez mostrada el componente recogera el valor establecido en el StreamedContent.

En el XHTML:

 


Y listo! Con esto nuestro componente mostrara nuestra imagen correctamente. Espero les ayude esta información tanto como a mi me ha ayudado.


Saludos, nos vemos pronto! 

5 comentarios:

  1. Hola yo tambien encontre este modo de hacer las cosas pero, tengo problemas cuando quiero actualizar mi variable StreamedContent. No basta con usar update (de PrimeF) tengo que dar f5 para que se actualize la imagen y ademas si le doy nuevamente f5 la imagen ya no aparece. Help me !!! :o

    ResponderEliminar
  2. Incluso cuando para el servidor Apache hago clear y encima quito mi aplicacion del servidor, ademas de eso puedo ver que en la ruta C:\Users\xxxx\Documents\workspace-sts-3.4.0.RELEASE\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\CapturaImgTela
    esa carpeta que es mi proyecto desaparece pero al al intentar cargar una imagen (segun los objetivos de mi proyecto) misteriosamente se carga la imagen que mostro antes que deteniera la aplicación y quitarlo del server, es como si se quedara en el historial o como cookies!!!

    ResponderEliminar
  3. Hola, disculpa, que tipo de scope defines para el controlador?

    ResponderEliminar
  4. Hola, y por ejemplo no quiero una foto en especifico si no una foto cualquiera, ejempló cualquier foto o fotos que se encuentren en la carpeta? disculpen.

    ResponderEliminar