【问题标题】:Primefaces file uploaded not setting file object in backing bean上传的 Primefaces 文件未在支持 bean 中设置文件对象
【发布时间】:2014-08-25 08:37:53
【问题描述】:

我正在使用通过 Apache Commons Uploader 上传的 Primefaces 5.0 文件。该控件出现在网页上,我可以选择一个文件,但是当我单击一个按钮来操作它时,控制器中的文件对象尚未设置。

网页:

<h:form id="master">
  <p:panelGrid columns="2">
    <p:fileUpload value="#{controller.file}" mode="simple"/>
    <p:commandButton value="Upload" 
        ajax="false" actionListener="# {controller.uploadFile}" />
  </p:panelGrid>

控制器:

@ManagedBean
@ViewScoped
public class Controller implements Serializable {

private UploadedFile file;

public UploadedFile getFile() {
    return file;
}

public void setFile(UploadedFile file) {
    this.file = file;
}

public void uploadFile() {
    if(file != null) {
        //Doesn't get here because file is null
    }
}

web.xml

<context-param>
    <param-name>primefaces.UPLOADER</param-name>
    <param-value>common</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>

我尝试在 web.xml 中将文件上传器设置为“自动”,但随后出现无法解决的多部分异常。

【问题讨论】:

    标签: jsf file-upload jsf-2 primefaces


    【解决方案1】:

    您错过了在&lt;h:form&gt; 中使用enctype="multipart/form-data"。改变如下

    <h:form enctype="multipart/form-data">
        ...
    </h:form>
    

    What does enctype='multipart/form-data' mean?

    【讨论】:

    • 谢谢。但是确实有我无法在同一个表单上处理普通表单字段和文件上传的效果。
    猜你喜欢
    • 2012-01-25
    • 2013-05-26
    • 1970-01-01
    • 2012-04-21
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    相关资源
    最近更新 更多