【发布时间】:2014-11-02 17:09:24
【问题描述】:
我尝试做一个简单的文件上传:
<h:form enctype="multipart/form-data">
<p:fileUpload value="#{catastrofes.file}" mode="simple"></p:fileUpload>
<p:separator/>
<h:commandButton value="Dummy Action" action="#{catastrofes.dummyAction}" ajax="false"></h:commandButton>
</h:form>
但是当我提交时,得到file = null 并提出NullPointerException、here 类似的问题,但答案对我不起作用,有什么想法吗?
这是我的托管 bean:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import org.primefaces.model.UploadedFile;
@ManagedBean(name="catastrofes")
@RequestScoped
public class CatastrofesBean {
private UploadedFile file;
public String dummyAction() {
System.out.println("Uploaded File Name Is :: " + file.getFileName() + " :: Uploaded File Size :: " + file.getSize());
return "";
}
public UploadedFile getFile() {
return file;
}
public void setFile(UploadedFile file) {
this.file = file;
}
}
还有我的 web.xml:
<context-param>
<param-name>primefaces.UPLOADER</param-name>
<param-value>auto|native|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>
谢谢!
【问题讨论】:
-
你永远不会为你的文件赋值。
-
抱歉@Sybren,但我不明白,你指派值是什么意思?
-
你只声明了 file ,但没有赋值,所以你的变量是 null 并且你得到一个空指针异常。
-
尝试扩大 backing bean 的范围,也许是
@ViewScoped
标签: jsf file-upload primefaces nullpointerexception