Primefaces fileupload mode="Simple" with commandbutton ajax="true" throws nullpointer exception

Primefaces fileupload mode="Simple" with commandbutton ajax="true" throws nullpointer exception

这是参考以下线程 [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

我遇到的问题是单击命令按钮时出现空指针。

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.");
            }
    }

每当 ajax="true" 并且设置为 false 时,控制台打印出 "The file object is null."。我在上面提到的线程中找不到解决方案。 请 advise.Also 如果您需要任何进一步的信息,请告诉我。

来自PrimeFaces user guide

Simple File Upload

Simple file upload mode works in legacy mode with a file input whose value should be an UploadedFile instance. Ajax uploads are not supported in simple upload.