Primefaces fileupload mode =“Simple”with commandbutton ajax =“true”抛出nullpointer异常

时间:2015-03-18 00:42:27

标签: file-upload jsf-2 primefaces nullpointerexception

这是参考以下主题 [File upload doesn't work with AJAX in PrimeFaces 4.0/JSF 2.2.x - javax.servlet.ServletException: The request content-type is not a multipart/form-data

我遇到的问题是单击命令按钮时的Nullpointer。

web.xml

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

XHTML

<p:fileUpload id="file" value="#{userBean.uploadedFile}"
                    mode="simple" required="true" allowTypes="*.xls,*.xlsx"
                    requiredMessage="#{msg.vrUserUpload}"
                    invalidFileMessage="#{msg.vrUserUploadInvalidFile}"
                    multiple="false" fileUploadListener="userBean.fileUploadListener" />

<p:commandButton id="btnUpload" value="#{displayText.btUpload}"
                        styleClass="button_lite" actionListener="#{userBean.insert}"
                        ajax="true" update="userMassUploadForm"
                        process="userMassUploadForm">
                    </p:commandButton>

UserBean.java

public void fileUploadListener(FileUploadEvent event)
    {
        uploadedFile = event.getFile();
    }

    public void insert(){
         if(uploadedFile!=null){
                System.out.println(uploadedFile.getFileName());
            }
            else{
                System.out.println("The file object is null.");
            }
    }

控制台打印出&#34;文件对象为空。&#34;每当ajax =&#34; true&#34;当设置为false时,工作。我在上面提到的帖子中找不到解决方案。  如果您想了解更多信息,请告知我们。

1 个答案:

答案 0 :(得分:0)

来自PrimeFaces user guide

  

简单文件上传

     

简单文件上载模式在传统模式下工作,文件输入的值应为UploadedFile实例。简单上传不支持Ajax上传。