我知道我的问题非常基本,但我在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
是我要向用户显示的号码。它具有正确的值,但我不知道如何发送另一个请求来检索此号码。
答案 0 :(得分:2)
只需在某个输出组件中引用它并使用ajax-update即可。
<p:fileUpload ... update="growlMessage totalImageFiles" />
<h:outputText id="totalImageFiles" value="#{mainForm.totalImageFiles}" />