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

时间:2015-09-01 19:24:19

标签: jsf file-upload jsf-2 primefaces

我知道我的问题非常基本,但我在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是我要向用户显示的号码。它具有正确的值,但我不知道如何发送另一个请求来检索此号码。

1 个答案:

答案 0 :(得分:2)

只需在某个输出组件中引用它并使用ajax-update即可。

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