【发布时间】:2014-03-06 13:49:11
【问题描述】:
我有以下代码,在 jboss eap 6.1 上运行:
<h:form id="SatelliteListForm" enctype="multipart/form-data">
...
<p:fileUpload id="datamodelImport" mode="advanced" auto="true" disabled="#{empty satelliteController.selected}" fileUploadListener="#{satelliteController.importDatamodel}" update=":messages" allowTypes="/(\.|\/)(csv)$/"/>
web.xml 包含以下内容:
<filter>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
pom.xml 有这个:
<dependency>
<groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
问题?它不起作用。 UI 似乎工作正常,但未调用文件上传侦听器。 使用搜索 BalucC 建议调试 http 通信。完成,这不是浏览器的问题。然后他建议调试对应primefaces类的decode方法。完毕。在下面的班级 org.primefaces.component.fileupload.CommonsFileUploadDecoder 他做这个检查: if(multipartRequest != null) // 继续,否则停止
在我的情况下,该变量为空。我不明白为什么。生成的 html 代码正确包含 enctype。
BalusC 建议在请求处理期间可能会发生某些事情。我正在使用气氛,但它使用另一个 servlet 进行通信。此外,他在相当长的一段时间内都在抱怨彗星的支持(总有一天我会解决这个问题)。不知道有没有关系。
我还能检查什么? 文件上传这么简单的事情浪费了我这么多时间,这很烦人......
感谢您的宝贵时间。
【问题讨论】:
-
嗨!你能做到吗?
标签: jsf file-upload primefaces