我在使用 PrimeFaces 上传文件时遇到问题。我在 StackOverflow 上浏览了旧帖子,没有发现任何有用的东西。奇怪的是我昨天让它工作了,但我现在启动了我的服务器并且它不再工作了。当我尝试访问上传的文件时,它给了我 NPE。
所以我下载了commons-fileupload-1.2.2.jar和commons-io-1.4,把它们放在我的类路径中,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>
我在 xhtml 页面中的表单包含一个带有描述的字段、一个组合框和一个字段上传元素
<h:form enctype="multipart/form-data">
<p:panel header="#{submitProjectPage['header']}">
<h:panelGrid columns="2">
#{submitProjectPage['chooseProject']}
<p:selectOneMenu value="#{submitProjectBean.project}" converter="projectConverter">
<f:selectItems value="#{submitProjectBean.studentsProjects}" />
</p:selectOneMenu>
最后我的bean是RequestScoped
并且有这个方法
private UploadedFile projectFile;
public void submitProject(ActionEvent event) {//also tried without parameter
project.setFile(projectFile.getContents());
project.setStatus(StatusEnum.DELIVERED);
daoBean.update(project);
}
#{submitProjectPage['submitInformation']}
<p:inputTextarea rows="10" value="#{submitProjectBean.s}"/>
#{submitProjectPage['file']}
<p:fileUpload value="#{submitProjectBean.projectFile}" mode="simple" />
<p:commandButton ajax="false" value="#{submitProjectPage['submit']}"
actionListener="#{submitProjectBean.submitProject}" />
</h:panelGrid>
</p:panel>
我确定我的导入正确,projectFile 字段还有一个设置器,所以我真的不知道问题出在哪里。我正在使用 PrimeFaces v 3.01
感谢帮助