提问者:小点点

具有文件上传和多重选择功能的JSF表单


我正在使用 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


共3个答案

匿名用户

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小部件。