Primefaces Téléchargement de Fichier ne fonctionne pas?
Essayer d'obtenir un simple téléchargement de fichier de travail et tout ce que je reçois est une pendaison AJAX barre d'état et c'est tout. Mon backing bean sorties de rendre le nom correct sur la préparation et le téléchargement.
Je fais ce mal? les deux sorties me semble être correct.
JSF 2.0
Primefaces 3.4
<h:form>
<p:commandButton id="downloadLink" value="Download" actionListener="#{filemanagement.prepDownload}">
<p:fileDownload value="#{filemanagement.download}" />
</p:commandButton>
</h:form>
Backing bean:
private DefaultStreamedContent download;
public void setDownload(DefaultStreamedContent download) {
this.download = download;
}
public DefaultStreamedContent getDownload() throws Exception {
System.out.println("GET = " + download.getName());
return download;
}
public void prepDownload() throws Exception {
File file = new File("C:\\file.csv");
InputStream input = new FileInputStream(file);
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
setDownload(new DefaultStreamedContent(input, externalContext.getMimeType(file.getName()), file.getName()));
System.out.println("PREP = " + download.getName());
}
OriginalL'auteur user2124871 | 2013-04-18
Vous devez vous connecter pour publier un commentaire.
Voir Primefaces Documentation 6.1
la portée de votre filemanagement bean?
La Session Sur la vue elle-même, j'ai 3 formes. Aucun d'entre eux sont tissées. J'ai lu que Primefaces et les multiples formes peuvent être flous.
Pas sûr de ce que cascade signifie dans ce cas particulier, mais j'ai une boîte de dialogue qui apparaît (appel AJAX) qui dispose de 3 formes (éditer, importer, téléchargement). Si cette forme est une partie de ce dialogue.
Je n'ai jamais eu de problème avec de multiples formes, tant qu'ils ne sont pas en cascade les unes dans les autres. Essayez d'utiliser quelque chose comme Firebug pour inspecter ce qui se passe. Ce qui est envoyé au serveur, et ce qui est receied (le cas échéant)? Peut-être des erreurs de validation? Peut-être une exception non interceptée quelque part?
OriginalL'auteur Manuel
À l'intérieur de bouton de commande, définissez ajax=false et ne pas utiliser de l'action ou de l'action de l'auditeur pour commandlink.
Bean:
OriginalL'auteur Manbumihu Manavan