使用primefaces的JSF做一个文件上传功能所遇到的问题(2)
经过了两天的折磨,上传文件的功能终于得到了解决,算是给自己一个学习的机会,使用primefaces的<p:fileUpload>功能上传文件。
1.jar包的引入, 在你的pom.xml文件里面导入 需要以下的几个文件
primeface-2.2.RC2.jar jsf-api-2.0.2.jar jsf-impl-2.0.2.jar el-api-2.2.jar el-impl-2.2.jar commons-io-1.4.jar commons-fileupload-1.2.jar
<!-- File Upload --><filter><filter-name>PrimeFaces FileUpload Filter</filter-name><filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class><init-param><param-name>thresholdSize</param-name><param-value>2097152</param-value></init-param></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><servlet-mapping><servlet-name>faces-servlet</servlet-name><url-pattern>*.xhtml</url-pattern></servlet-mapping>
<h:form id="uploadForm"> <p:fileUpload id="upload" fileUploadListener="#{blackListImportBean.handleFileUpload}"multiple="true" allowTypes="*.xls;*.xlsx" description="*.xls;*.xlsx" sizeLimit="10000000000"/> </h:form> public void handleFileUpload(FileUploadEvent event) {System.out.println("Handling Upload: " + event.getFile());UploadedFile upload = event.getFile();FacesContext.getCurrentInstance().addMessage("", new FacesMessage(FacesMessage.SEVERITY_INFO, "File Uploaded", "This file is " + upload));//do whatever here.... }