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