Primefaces FileUpload的未知属性错误

时间:2012-01-31 22:08:47

标签: file-upload primefaces event-listener

我正在使用PF 3.0.RC1 / NetBeans 7.0.1,当我尝试为fileUpload组件设置fileUploadListener时,NetBeans在行的最左边给出了“Unknown Property'handleFileUpload'”警告。

在我使用fileUpload的调试模式下,它不会调用handleFileUpload方法,也没有任何内容。

我可以为这个问题做些什么?

xhtml页面中的代码:

 <p:fileUpload fileUploadListener="#{BDS_System.handleFileUpload}" mode="advanced" 
                        sizeLimit="500000" allowTypes="/(\.|\/)(gif|jpe?g|png)$/"/>

托管bean中的代码:

public void handleFileUpload(FileUploadEvent event) {
        String fileName = event.getFile().getFileName();
        byte[] fileBytes = event.getFile().getContents();

        ...
    }

解决并解决方案:

添加

<h:form enctype="multipart/form-data">

和两个库,commons-fileupload和commons-io。对于maven项目;

    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId> commons-fileupload</artifactId>
        <version>1.2.1</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId> commons-io</artifactId>
        <version>2.1</version>
    </dependency>

1 个答案:

答案 0 :(得分:1)

我猜这就像在BalusC中回答这个帖子:"Unknown Property" netbeans的错误信息是无意义的,我想你忘记了fileupload配置中的内容,比如

  

FileUpload入门

     

首先要做的是配置解析multipart请求的fileupload过滤器。 FileUpload过滤器应该映射到Faces Servlet。

     
<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>

并确保将enctype添加到您的表单中,如下所示:

<h:form enctype="multipart/form-data">

如果以上所有内容都无济于事,请在此处查看BalusC的答案:How to use PrimeFaces p:fileUpload