Comment envoyer paramètre fileUploadListener dans PrimeFaces fileUpload
Quand je crée un modèle que je voudrais enregistrer des images pour un modèle. Je suis à l'aide de PrimeFaces composant fileUpload. Quand je enregistrer des images, je veux savoir le modèle particulier de l'image se réfère. C'est pourquoi j'ai besoin d'envoyer l'id de modèle pour la sauvegarde de haricot.
Est-il possible d'envoyer id de modèle à fileUploadListener?
<h:form enctype="multipart/form-data">
<p:panelGrid columns="2">
<h:outputLabel for="hotelName" value="#{msg.hotelName}"/>
<p:inputText value="#{apartmentNew.name}" id="hotelName"/>
<h:outputLabel for="hotelDescription" value="#{msg.hotelDescription}"/>
<p:inputText value="#{apartmentNew.description}" id="hotelDescription"/>
<h:outputLabel for="hotelImages" value="#{msg.hotelImages}"/>
<h:form enctype="multipart/form-data">
<p:fileUpload id="hotelImages"
fileUploadListener="#{apartments.handleImageUpload}"
mode="advanced"
sizeLimit="10000000"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/">
</p:fileUpload>
</h:form>
</p:panelGrid>
<p:commandButton id="saveApartmentButton" value="#{msg.save}" action="save"/>
<p:commandButton id="cancelCreationApartmentButton" value="#{msg.cancel}"
action="cancel"/>
</h:form>
Vous pouvez trouver la solution ici : stackoverflow.com/questions/15911527/... !
OriginalL'auteur Sergii Shevchyk | 2013-06-21
Vous devez vous connecter pour publier un commentaire.
Pas via les paramètres de la demande. Vous pouvez le faire via les attributs du composant.
E. g.
avec
event.getComponent().getAttributes().get("foo");
comme une Chaîne de caractères ou ce ne sera pas compilé. Il serait donc:String foo = (String) event.getComponent().getAttributes().get("foo"); // bar
corrigé, merci.
OriginalL'auteur BalusC
J'avais besoin de passer un paramètre clé avec le fichier téléchargé. J'ai trouvé que
fileUploadListener
exécute au cours de la APPLY_REQUEST_VALUES phase, donc je ne pouvais pas utiliser une expression EL dans lef:attribute
tag. J'ai aussi essayé de trouver la valeur à l'aideevent.getComponent().findComponent("id")
, mais bien que le composant est présent, la valeur est null. Je pense que@ViewScoped
haricot de fixer la valeur manquante, mais je suis obstinément en essayant de garder mes haricots à@RequestScoped
jusqu'à ce que je n'ai absolument pas d'autre option. En fin de compte, j'ai dû utiliserFacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id")
qui j'ai eu de http://forum.primefaces.org/viewtopic.php?f=3&t=6432OriginalL'auteur Jeff E
D'erreur du type:
Au lieu de cela, faire de cette façon:
OriginalL'auteur user3667166