文件上传完成时显示上传的文件总数

Display total files uploaded on file upload complete

我知道我的问题很基本,但我在 SO 或 Google 上找不到任何与此相关的内容。

我正在使用 PrimeFaces 及其 p:fileUpload 组件。它工作正常,正在上传文件。问题是,上传这些文件后,我需要向用户显示上传了多少文件,而不是使用 JavaScript。我的 Backing Bean 中需要这个数字。

有一个 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 是我要显示给用户的数字。它具有正确的值,但我不知道如何发送另一个请求来检索此号码。

只需在某些输出组件中引用它并ajax更新它。

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