2011-06-26 4 views
1

J'utilise JSF/PF et je ne peux pas faire de graphicImage. En examinant les tonnes de sujets publiés sur les forums, l'image de ce PF semble être si délicate. Je fais évidemment quelque chose de mal, mais, tant que je reproduis du code qui a fonctionné pour d'autres (voir l'article), cela doit être quelque chose dans l'environnement du composant. J'espère trouver une solution ici, je suis coincé pendant des semaines. MerciL'image graphique de PF ne rend pas

Voici ma première question dans le forum PF:

je rencontre un problème de rendu de l'image. J'ai suivi le code expliqué et je récupérer correctement l'ID de l'image à afficher dans une méthode distincte:

public StreamedContent getStreamedImage() { 

     StreamedContent streamedImage = null; 
       UIViewRoot uiRoot = FacesContext.getCurrentInstance().getViewRoot(); 

     System.out.println(uiRoot.getClientId()); 

     UIComponent component = FacesContext.getCurrentInstance().getViewRoot().findComponent("itemDataForm:imagesTbl:itemImgComp"); 
     Map attributes = component.getAttributes(); 
     Integer image_id = (Integer)attributes.get("item_img_id"); 

     if(image_id != null && editionItem != null && editionItem.getImages() != null){ 
      for(ItemImageView img : editionItem.getImages()){ 
       if(image_id.intValue() == img.getId()){ 
        streamedImage = new DefaultStreamedContent(new ByteArrayInputStream(img.getImage()), "image/jpeg"); 
       } 
      } 
     }else{ 
      streamedImage = new DefaultStreamedContent(new ByteArrayInputStream(editionItem.getImages().get(0).getImage()), "image/jpeg"); 
     } 
....... 

Je could't réussi à récupérer le (toujours null) alors j'ai essayé avec l'attribut et il fonctionne. Ainsi, le DefaultStreamContent est chargé, par l'image ne rend pas du tout. Mon code pour xhtml:

<p:dataTable id="imagesTbl" var="itemImg" value="#{itemEditionBean.editionItem.images}"> 
             <p:column> 
              <h:panelGrid columns="1"> 
               <h:outputText value="#{itemImg.id}"/> 
               <p:graphicImage id="itemImgComp" value="#{itemEditionBean.streamedImage}"> 
                <f:attribute name="item_img_id" value="#{itemImg.id}"/> 
               </p:graphicImage> 
              </h:panelGrid> 
             </p:column> 
            </p:dataTable> 

Exactement le même que le code fonctionnant dans ce sujet ci-dessus. PS: J'ai mt dataTable inclus dans un onglet. Peut-être une dépendance sur le composant, ou la forme, ou quoi?

Il y a une énorme quantité de code à partir d'autres sujets connexes qui peuvent être consultés dans le lien ci-dessous:

http://forum.primefaces.org/viewtopic.php?f=3&t=4163&p=39751

+0

Veuillez poser la question originale ici. – Mark

Répondre