【问题标题】:Primefaces fileupload mode="Simple" with commandbutton ajax="true" throws nullpointer exceptionPrimefaces fileupload mode="Simple" with commandbutton ajax="true" 抛出空指针异常
【发布时间】:2015-03-18 00:42:26
【问题描述】:

这是参考以下线程 [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 时,都有效。我在上面提到的线程中找不到解决方案。 请告知。如果您想了解更多信息,请告诉我。

【问题讨论】:

    标签: file-upload jsf-2 primefaces nullpointerexception


    【解决方案1】:

    来自PrimeFaces user guide

    简单文件上传

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

    【讨论】:

    • 目的是上传带有数据的excel文件。然后使用针对数据库主表条目的一些规则验证此数据。如果没有,这些消息应该被捕获并显示在 p:messages 中。请提出任何可以实现此目的的方法。
    • 我认为您至少需要 mode="advanced" 才能使 ajax 工作。如果仍然存在问题,网站上已经有很多文件上传问题的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 2020-08-10
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多