Upload e Download via JSF [RESOLVIDO]

Estou fazendo um pequeno projeto, mas meio que travei na parte de fazer o download do arquivo, estou usando as bibliotecas commons-fileupload-1.2.2 e commons-io-2.4, mas até agora só consegui fazer o upload da seguinte forma:

package br.com.nooclix.primeupload.mb;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.UploadedFile;
 
@ManagedBean(name="fileUploadMB")
@RequestScoped
public class FileUploadMB {
 
    public FileUploadMB() {  
    }
 
    public void doUpload(FileUploadEvent fileUploadEvent) {
             UploadedFile uploadedFile = fileUploadEvent.getFile(); 
             String fileNameUploaded = uploadedFile.getFileName();
             long fileSizeUploaded = uploadedFile.getSize(); 
             String infoAboutFile = "<br/> Arquivo recebido: <b>" + fileNameUploaded +"</b><br/>"+
                 "Tamanho do Arquivo: <b>"+fileSizeUploaded+"</b>";
             FacesContext facesContext = FacesContext.getCurrentInstance();
             facesContext.addMessage(null, new FacesMessage("Sucesso", infoAboutFile));
   }
}

A view dessa forma

<html xmlns="http://www.w3.org/1999/xhtml"
           xmlns:h="http://java.sun.com/jsf/html"
           xmlns:p="http://primefaces.org/ui">

<h:body>
        <h:form enctype="multipart/form-data">
            <p:fileUpload fileUploadListener="#{fileUploadMB.doUpload}"
                          showButtons="false" label="Procurar..." auto="true"/>
        </h:form>       
        <p:messages  severity="info" escape="false" showDetail="true"
                 autoUpdate="true" closable="true"/>
</h:body>
 
</html>

Alguém pode me dar uma ajuda, de como posso fazer o download?? Desde já agradeço.

eu ja fiz o download de arquivos vou postar o que ei fiz para voce usar de base


&lt;p:commandLink value="Download" ajax="false"&gt;
                                    &lt;p:fileDownload value="#{passagem.filePassagem}" /&gt;
                                &lt;/p:commandLink&gt;

public StreamedContent getFilePassagem()
    {
        try {
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            out.write(PDFUtil.mergeFiles(GeracaoPassagem.gerarPassagem(this)));
            ByteArrayInputStream input = new ByteArrayInputStream(out.toByteArray());
            filePassagem = new DefaultStreamedContent(input, "pdf", "passagem.pdf");
            return filePassagem;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

fiz dessa forma chamando esse metodo que me retorna uma implementacao de StreamedContent

Resolveu conseguiu ?

Fiz sim, vlw obrigado!

Vc conseguiu fazer o upload de vários arquivos de uma só vez com esse código?