Primefaces 3.4.2 "文件上传"的总结


(1)Jars

添加commons-fileupload-1.2.2.jar and commons-io-1.4.jar到web-inf/lib目录下

(2)web.xml

添加如下配置到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>
(3)*.xhtml


<h:form enctype="multipart/form-data">
    <p:fileUpload value="#{fileBean.uploadedFile}" mode="simple" />
    <p:commandButton value="Submit" ajax="false"/>
</h:form>

Note:(1)Please note the enctype="multipart/form-data" attribute of the form. This is mandatory for HTML in order to be able to send files to the server. The filter is mandatory for JSF in order to extract the data from multipart/form-data requests. Without either of them, either the command action won't be invoked, or all properties will be null.

          (2)simple upload doesn't support ajax.  should add ajax="false" on commondButton

(4)Manager Bean

         

public class FileUploadController {   

    private UploadedFile uploadedFile;

    public FileUploadController() {
    }       

    public UploadedFile getUploadedFile() {
        return uploadedFile;
    }

    public void setUploadedFile(UploadedFile uploadedFile) {
        this.uploadedFile = uploadedFile;
    }

    public void submit() {    
        // Get information you from the uploaded file
        System.out.println("Uploaded file name : " + uploadedFile.getFileName());
    }

} 

在写这篇文章时,还有个问题没有解决,就是上传文件的名称为中文时, 保存的文件名为乱码,期待完善中.

你可能感兴趣的:(Primefaces 3.4.2 "文件上传"的总结)