我正在使用 JSF 2.0,并且我有一个带有素数自动完成(多个)字段和几个文件输入的表单。由于我使用的是文件输入,因此我的h:form标签使用enctype=“multipart/form-data”。
但是,当我将表单设置为multipart时,我的自动完成字段只将最后一项返回到我的bean(列表的大小始终为1)。当仅使用常规的多选元素而不是primeface自动完成时也会出现此问题(自动完成使用隐藏的多选元素)。当我删除enctype="multipart/form-data"时,此问题就消失了,但当然,我的bean无法检测到我希望上传的文件。
有没有人面对这个问题,找到解决办法?
我正在使用:Liferay 6.1 GA2、Primeface 3.5、Mojarra 2.1.21
Anghel Leonard 在文章使用传递命名空间 (http://xmlns.jcp.org/jsf/passthrough
) 上传多个文件以添加多个
属性并覆盖 FileRenderer#decode 方法来提取上传的文件中进行了描述。
我在 JBoss EAP 6.1 中遇到了同样的问题。事实证明,这是 Request.java 对象实现中的一个错误,直到 Wildfly 8.x 才修复。参考资料: https://community.jboss.org/thread/223085
为了解决这个问题,我使用了BalusC博客中的过滤器:http://balusc.blogspot.com/2007/11/multipartfilter.html
请注意,即使 JBoss 是 3.0 servlet 规范,由于错误,我无法使用 BalusC 的相关博客条目进行 3.0。
对于任何面临这个问题的人,我只想分享我最终转而使用jquery的autocomplete小部件。