2017-10-10 3 views
0

J'utilise PrimeFaces 6.0. J'ai utilisé la balise selectOneRadio et rempli la liste de la base de données, puis je voudrais utiliser la valeur sélectionnée pour identifier le type de document sélectionné et le passer à fileUploadListener afin que le bon type de document soit attaché au fichier en cours de téléchargement. Comment puis-je transmettre cette valeur sélectionnée?Comment passer la valeur sélectionnée de la balise selectOneRadio à la balise fileUpload dans PrimeFaces

<p:selectOneRadio id="docType" value="#{fileUploadBean.docType}" layout="grid" columns="1"> 
    <f:selectItems var="document" value="#{fileUploadBean.docDescriptionList}" itemLabel="#{docType}" itemValue="#{docType}" /> 
</p:selectOneRadio> 

<p:fileUpload id="docFile" value="#{fileUploadBean.file}" mode="advanced" allowTypes="/(\.|\/)(pdf)$/" 
    fileUploadListener="#{fileUploadBean.uploadFile}" multiple="true" update="messages"> 
</p:fileUpload> 

<p:growl id="messages" showDetail="true" /> 
+0

Pourquoi avez-vous besoin de passez-le à la fileUpload TAG? Vous devriez juste l'envoyer au bean (par exemple en utilisant ajax) – Kukeltje

+0

@Kukeltje, j'ai essayé de le passer au bean en utilisant quand l'utilisateur sélectionne un item mais la valeur ne tient pas lorsque j'ai téléchargé un fichier par la suite. – Yanty

+0

Ensuite, vérifiez les champs de vos haricots – Kukeltje

Répondre

0

Vous devez ajouter une variable pour les types autorisés, puis le mettre à jour lorsque le bouton radio change:

<p:selectOneRadio id="docType" 
        value="#{fileUploadBean.docType}" 
        layout="grid" 
        columns="1"> 
    <p:ajax listener="#{fileUploadBean.updateAllowTypes}" update="@form" /> 
    <f:selectItems var="document" 
        value="#{fileUpoadBean.docDescriptionList}" 
        itemLabel="#{docType}" 
        itemValue="#{docType}" /> 
</p:selectOneRadio> 

<p:fileUpload id="docFile" 
       value="#{fileUploadBean.file}" 
       mode="advanced" 
       allowTypes="#{fileUploadBean.allowTypes}" 
       fileUploadListener="#{fileUploadBean.uploadFile}" 
       multiple="true" 
       update="messages"> 
</p:fileUpload> 

Et Java Bean:

private String allowTypes; //getters and setters 
... 
public void updateAllowTypes(){ 
    allowTypes = ... //Specify allowed types 
} 
+0

Merci de votre aide, mais cela ne fonctionne pas vraiment comme j'espère. Je n'essaie pas de changer la valeur allowTypes, je veux toujours seulement les fichiers pdf, mais ce que je voulais dire, c'est que le bouton radio listait le type de documents, tels que "certificates", "resume", et basé sur la sélection, le fichier téléchargé sera classé sous "certificats" ou "CV". – Yanty