Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/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 rich:fileUpload提交整个表单_Jsf_Jsf 2_Richfaces - Fatal编程技术网

Jsf rich:fileUpload提交整个表单

Jsf rich:fileUpload提交整个表单,jsf,jsf-2,richfaces,Jsf,Jsf 2,Richfaces,考虑这段代码,它依赖于JSF2和RichFaces 4.5.0作为使用过的组件库 // some non-relevant attributes are omitted <rich:fileUpload fileUploadListener="#{bean.uploadListener}"> <a4j:ajax event="uploadcomplete" render="imagePanel" immediate="true" /> </ric

考虑这段代码,它依赖于JSF2和RichFaces 4.5.0作为使用过的组件库

// some non-relevant attributes are omitted    
<rich:fileUpload fileUploadListener="#{bean.uploadListener}">
      <a4j:ajax event="uploadcomplete" render="imagePanel" immediate="true" />
</rich:fileUpload>
//省略了一些不相关的属性
表单中的给定标记提交整个表单。例如,这不是我期望的行为。我希望组件只提交自身的表单属性,并跳过同一表单中的其他表单值,如RichFaces 3中的ajaxSingle

我在这个主题上做了一些研究,但没有找到任何关于如何管理fileUpload组件的部分表单提交的结论,特别是因为这个标记没有执行属性,就像其他几个jsf ajax组件一样


如果您能在这个案例中提供帮助,我将不胜感激,尤其是如何管理fileUpload组件只向服务器提交自己的表单值。

请尝试
a4j:ajax的
execute
属性

从文档:

执行:将参与请求处理生命周期“执行”部分的组件的ID。可以是单个id、以空格或逗号分隔的id列表,也可以是对数组或集合求值的EL表达式。标识符列表中可以指定任何关键字“@this”、“@form”、“@all”、“@none”、“@region”。有些组件使用其他关键字

我想这正是你需要的


更多信息:

您可以将其以单独的形式发布。它破坏了什么吗?不幸的是,这对我们来说只是一个肮脏的解决办法,因为fileupload组件集成在依赖单一表单的UI中。有人找到了解决方案吗?我正在处理同一个项目,并接管了该问题。出于测试目的,我完全删除了a4j:ajax,并向rich:fileUpload本身添加了一个execute=“@this”,但仍然提交了整个表单。奇怪的是,作为请求URL的正常请求参数,而不是作为部分ajax请求的POST参数。您是否尝试在
a4j:ajax
上添加
execute=“@this”
?或者您尝试过
f:ajax
而不是
a4j:ajax
?我完全删除了
a4j:ajax
rich:fileUpload本身执行基于ajax的上传(正如预期的那样),这已经导致完整表单作为请求参数提交。事实上,在某些情况下,由于转义错误或请求参数过长,这会导致服务器错误。我使用chrome的网络监视器进行调试,它清楚地显示了上述行为。我现在切换到PrimeFaces的文件上传,效果很好。是的,我明白了,我在问你是否也尝试过其他选项。。抱歉我的英语不好:(.谢谢你的信息,如果我有时间,我会做一些测试。是的,完全放弃RF上传,用PrimeFaces一个替换。迁移相对容易,处理上传的机制几乎相同。