我在视图范围的 bean 中有一个简单的上传监听器,对于每个上传的文件,将其添加到列表中,然后显示列表。
问题是,当我按下上传按钮一次上传多个文件时,只有一个文件被添加到列表中,并且没有显示异常。另一方面,如果我上传单个文件,等待前一个完成,行为是正常的。
我想到了一些并发问题,但是当我尝试将 bean 放入会话范围时,它工作正常。并发问题是否有可能使视图无效?
还有什么建议吗?非常感谢
<h:form id="form" enctype="multipart/form-data">
<p:wizard widgetVar="wiz" render="true" id="wizard">
<p:tab id="p0" title="file upload" step="0">
<p:panel>
<p:fileUpload
fileUploadListener="#{myBean.uploadedFile}"
mode="advanced" multiple="true" sizeLimit="100000"
update="fileList"/>
<p:dataList id="fileList" value="#{myBean.filesName}" var="file">#{file}</p:dataList>
豆子:
public void uploadedFile(FileUploadEvent event) {
try {
files.add(event.getFile());
filesName.add(event.getFile().getFileName());
} catch (Exception e) {
e.printStackTrace();
}
}