ビュー スコープ Bean 内に単純なアップロード リスナーがあり、アップロードされたファイルごとにリストに追加され、リストが表示されます。
問題は、アップロード ボタンを押して一度に複数のファイルをアップロードすると、ファイルの 1 つだけがリストに追加され、例外が表示されないことです。一方、前のファイルが完了するのを待って単一のファイルのアップロードを行うと、動作は正常です。
並行性の問題を考えましたが、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();
}
}