2017-08-30 2 views
2

laisse supposer i avoir à côté balise image graphique dans une formeréengendrer <h: graphicImage par <p: commandButton

<p:lightBox styleClass="imagebox " id="imageLightBox" rendered="true"> 
    <h:outputLink value="http://..../center/#{myBean.centerId}/picture" title="Bla bla bla"> 
     <h:graphicImage value="http://..../center/#{myBean.centerId}/picture" /> 
    </h:outputLink> 
</p:lightBox> 

et j'ai à venir primefaces bouton commande

<p:commandButton icon="fa fa-save" value="Save" title="Save" actionListener="#{myBean.saveCenterImage()}" update="@form" > 

Alors, comment pouvez je re-rend graphicImage quand je clique sur commandButton.

+0

Si vous mettez à jour le formulaire, il devrait en fait être rendu, probablement il vous manque le processus = "imageLightBox" ou le processus = "@ form". Au fait, je supprimerais l'attribut rendu puisque c'est toujours vrai (sauf si c'est juste pour plus de clarté), voir https://stackoverflow.com/questions/9010734/why-do-i-need-to-nest-a -composant-avec-rendu-dans-un-autre-composant-w/ –

+0

@ MárioFernandes: l'attribut de processus est pour ce qui est traité sur le serveur concernant les valeurs soumises. Vous pouvez toujours mettre à jour quelque chose qui n'est pas ** traité **. – Kukeltje

+0

qu'avez-vous débogué? Avez-vous vérifié la réponse ajax? Que contient-il? La même ou une nouvelle URL? Le navigateur essaie-t-il de le récupérer? résultats dans un 304? S'il vous plaît expliquer plus – Kukeltje

Répondre

3

Je pense que vous devez utiliser p:graphicImage au lieu de h:graphicImage et définir l'attribut cache = false afin que le navigateur ne mettra pas en cache l'image.