2015-09-01 125 views
0

我知道我的问题非常基本,但在SO或Google上找不到任何关于此的问题。我使用PrimeFaces及其p:fileUpload组件。它工作正常,文件正在上传。问题是,在上传这些文件后,我需要向用户显示上传了多少文件,而不是使用JavaScript。我需要这个数字在我的支持豆。显示文件上传完成时上传的文件总数

有一个oncomplete属性,但用于客户端回调(也是JavaScript)。

以下是我卑微的代码:)

<p:fileUpload required="true" requiredMessage="No files selected." 
       mode="advanced" 
       multiple="true" 
       dragDropSupport="true" 
       allowTypes="/(\.|\/)(gif|jpe?g|png)$/" 
       update="growlMessage" 
       fileUploadListener="#{mainForm.fileUploadListener}"> 
</p:fileUpload> 

这里是后台bean:

@ManagedBean 
@SessionScoped 
public class MainForm { 
    private int totalImageFiles; 

    public MainForm() { 
     this.totalImageFiles = 0; 
    } 

    public void fileUploadListener(FileUploadEvent event) { 
     UploadedFile uploadedFile = event.getFile(); 
     ReaderWriter.ReadWrite(uploadedFile, yourName, yourHomeAddress, totalImageFiles); 
     totalImageFiles++; 
    } 
} 

totalImageFiles是我想说明的用户数量。它具有正确的值,但我不知道如何发送另一个请求来检索此号码。

回答

2

只需在某些输出组件中引用它,然后使用ajax进行更新。

<p:fileUpload ... update="growlMessage totalImageFiles" /> 
<h:outputText id="totalImageFiles" value="#{mainForm.totalImageFiles}" /> 
+0

我已经使用了你问的确切的东西,它已经开始工作。但我不是阿贾克斯 - 更新任何东西。这将是未来的问题吗? –

+0

此外,现在它显示'totalImageFiles'也不准确。有时它显示正确的数字,其他时间不显示。你认为我上面的计算总上传文件的方法是正确的吗? –

+0

'update'属性可以做到这一点。至于错误编号,迄今为止所提供的信息中并未看到原因。 – BalusC