Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在“中调用远程命令”;“多部分/表单数据”;JSF中的表单_Jsf_Primefaces_Jsf 2.2 - Fatal编程技术网

如何在“中调用远程命令”;“多部分/表单数据”;JSF中的表单

如何在“中调用远程命令”;“多部分/表单数据”;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)$/"

我有一个上传的Bean,它是sessionscope。我想在oncomplete中调用远程命令
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