如何在“中调用远程命令”;“多部分/表单数据”;JSF中的表单
我有一个上传的Bean,它是sessionscope。我想在oncomplete中调用远程命令如何在“中调用远程命令”;“多部分/表单数据”;JSF中的表单,jsf,primefaces,jsf-2.2,Jsf,Primefaces,Jsf 2.2,我有一个上传的Bean,它是sessionscope。我想在oncomplete中调用远程命令myRemoteFunction: <h:form enctype="multipart/form-data"> <p:fileUpload fileUploadListener="#{uploadBean.handleFileUpload}" mode="advanced" allowTypes="/(\.|\/)(mdb)$/"
myRemoteFunction
:
<h:form enctype="multipart/form-data">
<p:fileUpload fileUploadListener="#{uploadBean.handleFileUpload}" mode="advanced"
allowTypes="/(\.|\/)(mdb)$/"
description="Select File"
dragDropSupport="true"
multiple="false"
fileLimit="1"
update="growl"
widgetVar="fileUploadWidget"
oncomplete="PF('fileUploadWidget').reset(); myRemoteFunction()"/>
<p:remoteCommand name="myRemoteFunction" action="#{uploadBean.remoteFunction}"/>
<script>
PrimeFaces.widget.FileUpload.prototype.reset = function() {
this.clearMessages();
return this.init(this.cfg);
}
</script>
</h:form>
当我设置远程命令“myRemoteFunction”时,我收到以下错误消息:
Caused by: javax.servlet.ServletException: org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded; charset=UTF-8
我不想在handleFileUpload函数中调用remoteFunction。因为当我调用它时,进度条显示文件已完全上载,但它不会消失,直到进程退出hadleFileUpload函数。因为RemoteFunction中的逻辑可能需要5秒到15秒
如何做到这一点?谢谢。我发现您的代码可能存在两个问题。第一个,不一定是错的,但是,
PF('fileUploadWidget').reset()
我不知道upload小部件上有一个重置功能,但这可能是您注册的,或者是我不熟悉的某个版本,但请检查您的代码是否存在javascript错误
第二,肯定是错误的,您需要使用paradensis
myRemoteFunction()
调用myRemoteFunction,否则它将简单地静默忽略。我使用reset函数重置上载文件限制(我重置计数以允许用户上载另一个文件)。当我删除不必要的代码块时,我忘记了myRemoteFunction()的括号。所以,这是几乎原始的代码块。请再检查一遍。
Caused by: javax.servlet.ServletException: org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded; charset=UTF-8