jsf中的ajaxified文件上载

jsf中的ajaxified文件上载,ajax,jsf,file-upload,Ajax,Jsf,File Upload,我想在不发布整个表单的情况下上传文件。文件上传工作正常,但整个表单已提交。当验证是正确的时,这可以正常工作。但当p.e.必填字段为空时,上载不起作用,并返回错误消息(必填字段缺失) 因此,我尝试使用ajax上传文件(ajax=true)。但是上传什么也不做 我尝试了一个工作,把文件上传和其他领域的不同形式。这是可行的,但结果是,在执行文件上载时,您在其他字段中更改的数据将被忽略 有什么建议吗 以下是我使用的代码: <t:inputFileUpload id="fileupload" val

我想在不发布整个表单的情况下上传文件。文件上传工作正常,但整个表单已提交。当验证是正确的时,这可以正常工作。但当p.e.必填字段为空时,上载不起作用,并返回错误消息(必填字段缺失) 因此,我尝试使用ajax上传文件(ajax=true)。但是上传什么也不做

我尝试了一个工作,把文件上传和其他领域的不同形式。这是可行的,但结果是,在执行文件上载时,您在其他字段中更改的数据将被忽略

有什么建议吗

以下是我使用的代码:

<t:inputFileUpload id="fileupload" value="#{prospectDetail.upFile}" size="50" />
<h:outputLabel for="description" value="#{msg.prospectdetail_description}"/>
<mw:inputText id="description" size="40" value="#{prospectDetail.fileDescription}" />
<p:commandButton styleClass="button" value="#{msg.common_upload}" action="#{prospectDetail.upload}" ajax="false" process="@form" onbegin="busyPopup.show()" oncomplete="busyPopup.hide();"/>

无法通过第一个版本的
XMLHttpRequest
上传文件(这是JavaScript中的核心Ajax请求控制器对象)。第二个版本的
XMLHttpRequest
支持它,但是
没有实现这一点(目前浏览器支持率较低)

既然您似乎已经在使用PrimeFaces,为什么不使用它自己的组件呢?或者甚至是示例都应该为您做这件事(在添加PrimeFaces的文件上载过滤器之后,不要忘记从
web.xml
中删除MyFaces extensions过滤器!)。PrimeFaces的
将在可用时自动利用XHR2文件上载

我尝试了一个工作,把文件上传和其他领域的不同形式。这是可行的,但结果是,在执行文件上载时,您在其他字段中更改的数据将被忽略


如果您将bean放在视图范围而不是请求范围中,并从操作方法返回
null
void
,那么这应该会起作用。

与primefaces upload有相同的问题,但我将其设置为在选择文件时自动上载,效果很好,请检查您使用的组件中是否有自动上载功能,这将解决提交问题。。。rulez:)您现在是否可以在文件中添加额外的字段描述(字符串),并将其发送到bean on file upload事件?