【发布时间】:2015-06-30 08:08:19
【问题描述】:
我在 JSF 2.2 应用程序中遇到 Primefaces 5.2 fileUpload actionListener 的问题。下面是代码示例:
<h:form id="form1" enctype="multipart/form-data" >
<h:panelGroup id="fileUploader">
<p:fileUpload fileUploadListener="#{fileUploadControllerBean.handleFileUpload}"
onstart="PF('statusDialog').show();"
oncomplete="PF('statusDialog').hide();"
mode="advanced"
dragDropSupport="false"
multiple="false"
update="form1:uploadMessagesGrowl,
:form2:fileUploadMessage,
:form3:fileUploadPanelGroup"
uploadLabel="#{common['validateFileStudents']}"
label="#{common['addFileStudents']}"
cancelLabel="#{common['cancelFileStudents']}"
allowTypes="/(\.|\/)(csv)$/"/>
<p:growl id="uploadMessagesGrowl" showDetail="true" />
</h:panelGroup>
</h:form>
我需要上传一个文件并在 actionListener 中处理它(解析、验证到实际数据等)。之后,如果文件有效且数据库中不存在此文件中的数据,则应呈现第 3 个表单上的“插入”按钮。当文件中有少量数据时 - 一切正常。但是当有大量数据时 - 响应在文件中的所有数据验证之前返回(在 actionListener 方法结束之前)。当文件末尾的错误数据并在发送响应后进行验证时,这会导致潜在的错误。
我想,我可以用另一种方式做到这一点 - 只需添加验证按钮并在上传后验证文件,但我想同时使用 fileUpload actionlistener 进行上传和验证。
有人知道为什么在 actionListener 方法结束之前返回响应吗?
【问题讨论】:
-
您可以在 actionListener 方法的末尾设置“插入”按钮的呈现属性。
标签: jsf file-upload jsf-2 primefaces