我有以下代码,在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>
问题是什么?它不起作用。用户界面似乎工作正常,但未调用文件上传监听器。
使用搜索BalucC建议调试http通信。完成后,这不是浏览器故障。然后他建议调试相应的primefaces类的解码方法。完成。在下面的课程中
org.primefaces.component.fileupload.CommonsFileUploadDecoder
他做了这个检查:
if(multipartRequest!= null)//继续,否则停止
在我的情况下,变量为null。我不明白为什么。生成的html代码正确包含enctype。
BalusC建议在请求处理期间可能发生某些事情。我正在使用氛围,但它使用另一个servlet进行通信。他也抱怨彗星支持很长一段时间(总有一天我会解决这个问题)。不知道是否重要。
我还能检查什么? 令人恼火的是,像文件上传这么简单的东西浪费了我很多时间......
感谢您的时间。
答案 0 :(得分:0)
您是否尝试将以下参数添加到您的web.xml中?
<context-param>
<param-name>primefaces.UPLOADER</param-name>
<param-value>commons</param-value>
</context-param>
在添加这些上下文参数
之前,我有相同的行为此致
迈克尔