Monday, December 29, 2014

JSF:Un exemple d'image dynamique en primefaces

Dans cet exemple , on va montrer comment travailler avec une image dynamique en utilisant le composant graphicImage du primefaces.

voici la classe du managedBean:



InputStream is = new FileInputStream("c://jsf.png"); Cette ligne va convertir le fichier de l'image en InputStream.

Voici le code de la page qui va afficher l'image .



Voici ce qu'on va obtenir aprés exécution:

8 comments:

  1. Vous trouvez en video ici

    https://www.youtube.com/channel/UCtpoCoqCZawknFWhHpJ-YkQ

    ReplyDelete
  2. Bonjour, j'ai appliqué votre exemple sur mon projet et ça marche bien. Mais j'aimerais savoir si c'était le contraire comment s'y prendre ? parce que je suis face à un problème qui est d'inserer des images dans ma base de données que je vais afficher après sur mon formulaire d'affichage.
    Je suis novice et mon projet concerne la Gestion des élèves d'un établissement scolaire.
    Je veux charger dans ma base la photo d'identité de chaque élève.
    Merci d'avance

    ReplyDelete
    Replies
    1. Bonjour,
      il suffit d'enregistrer tes images en type byte ou blob.Tu travaille la couche persistance avec hibernate ou jdbc?

      Delete
  3. j'ai essaie ta solution mais ça ne donne pas j'ai plutôt cette erreur

    FATAL: JSF1073 : java.lang.ClassCastException intercepté durant le traitement de RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
    FATAL: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
    java.lang.ClassCastException: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String

    merci de votre reponse j'ai bien compris le probleme mais je ne le sais comment le résoudrer

    ReplyDelete
    Replies
    1. tu peux me donner ton bout de code?

      Delete
    2. Merci de votre aide je ne sais pas comment ajouter image donc je vais coller le code brut comme ça seulement

      voici le controller

      public class graphicImageView implements Serializable{

      StreamedContent content=new DefaultStreamedContent() ;

      public StreamedContent getContent() {
      try {
      InputStream is = new FileInputStream("/home/alex-gobe/Images/route.jpg");
      is.close();
      content = new DefaultStreamedContent(is);

      } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }

      return content;
      }
      public void setContent(StreamedContent content) {
      this.content = content;
      }


      }

      voici la vue







      et le journanl d'erreur de GlassFish


      FATAL: JSF1073 : java.lang.ClassCastException intercepté durant le traitement de RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
      FATAL: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
      java.lang.ClassCastException: org.primefaces.model.DefaultStreamedContent cannot be cast to java.lang.String
      at com.sun.faces.renderkit.RenderKitUtils.getImageSource(RenderKitUtils.java:1387)
      at com.sun.faces.renderkit.html_basic.ImageRenderer.encodeEnd(ImageRenderer.java:96)
      at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
      at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
      at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
      at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
      at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458)
      at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134)
      at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
      at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
      at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
      at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
      at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)

      et encore merci pour votre réponse ma tête chauffe déjà

      Delete
  4. bjr svp j'ai vraiment besoin de votre aide merci

    ReplyDelete