primefaces文件上传不起作用

时间:2014-03-06 13:49:12

标签: jsf file-upload primefaces

我有以下代码,在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.C​​ommonsFileUploadDecoder 他做了这个检查: if(multipartRequest!= null)//继续,否则停止

在我的情况下,变量为null。我不明白为什么。生成的html代码正确包含enctype。

BalusC建议在请求处理期间可能发生某些事情。我正在使用氛围,但它使用另一个servlet进行通信。他也抱怨彗星支持很长一段时间(总有一天我会解决这个问题)。不知道是否重要。

我还能检查什么? 令人恼火的是,像文件上传这么简单的东西浪费了我很多时间......

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

您是否尝试将以下参数添加到您的web.xml中?

<context-param>
    <param-name>primefaces.UPLOADER</param-name>
    <param-value>commons</param-value>
</context-param>

在添加这些上下文参数

之前,我有相同的行为

此致

迈克尔