PrimeFaces 7.0 FileUpload文件为null问题求助
PrimeFaces文件上传时ManagedBean中file值为null的问题
我被这个问题困扰很久了,一直没找到解决方案。假期结束后问题依旧,毫无头绪也没动力,多次向团队求助并演示操作过程都没得到帮助。
我的需求是通过xhtml页面上传文件到@ManagedBean管理的Bean中,用的是PrimeFaces官方示例里的基础文件上传(Simple/Advanced模式)。
问题现象:上传界面显示正常,能选择文件并在字段中展示,但点击上传时,Bean里的file值为null,抛出异常:java.lang.NullpointerException. Cannot invoke "org.primefaces.model.UploadedFile.getFileName()" because the return value of xxx.getFile() is null。请求信息在"Nutzlast"标签页能看到文件名,看起来是正常的。
我搜过其他类似问题的帖子,试过里面的解决方案都没用。
环境配置
- PrimeFaces 7.0
- Spring Boot
- Tomcat 9.0.38
已尝试的解决方案
- 搜索上下文、过滤器、依赖相关的解决方案,均无效
- 分步测试:用inputText验证Bean能正常接收值,此方式有效
- 尝试过Simple和Advanced两种上传模式
- 逐行调试,控制台仅在读取文件时显示null,无其他错误
- 更换过PrimeFaces版本
- 在web.xml中添加配置及过滤器:
<context-param> <param-name>primefaces.UPLOADER</param-name> <param-value>commons</param-value> </context-param> <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>
- 添加相关依赖:
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.1</version> </dependency>
代码片段
XHTML代码
<h:panelGrid columns="4" cellpadding="5" style=margin-left:20px; margin top:30px"> <h:form enctype ="multipart/form-data"> <p:outputLabel value ="File: "/> <p:fileUpload value ="#{ImportBean.file}" mode ="simple" /> <p:commandButton value="Generien" ajax="false" action="#{ImportBean.createFile()}" /> </h:form> </h:panelGrid>
Bean代码
@ManageBean(Value ="ImportBean") @RequestScope public class ImportFileBean { private UploadedFile file; public UploadedFile getFile() { return file; } public void setFile(UploadedFile file) { this.file = file; } public void createFile(){ String filename = getFile().getFilename(); LOG.info(filename); }
恳请各位提供解决方案。
内容的提问来源于stack exchange,提问作者Troublezero
相关产品推荐
相关产品推荐

