首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PrimeFaces上传文件未上传

PrimeFaces上传文件未上传
EN

Stack Overflow用户
提问于 2012-02-05 19:22:11
回答 2查看 4.2K关注 0票数 1

我正在使用PrimeFaces 3并尝试上传一个文件,但当我调试时,该文件始终为空。下面你可以看到我的代码。有人能发现问题出在哪里吗?

代码语言:javascript
复制
<h:form enctype="multipart/form-data">

        <p:fileUpload value="#{uploadFileMB.file}" mode="simple" />
        <p:commandButton value="Submit" ajax="false" action="#{uploadFileMB.submit()}"/>
        <h:outputLabel value="#{uploadFileMB.text}" />

</h:form>



 import javax.enterprise.context.SessionScoped;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.RequestScoped;
    import org.primefaces.model.UploadedFile;


    @ManagedBean
    @SessionScoped
    public class UploadFileMB {
    UploadedFile file;
    String text;

        public String getText() {
            return text;
        }

        public void setText(String text) {
            this.text = text;
        }


        public UploadedFile getFile() {
            return file;
        }

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

        public void submit(){


         System.out.println("Trial "+file);
         UploadedFile a=file;
         if(file==null)
             text="not uploaded";
         else
             text=file.getFileName()+" uploaded";
                 }
        /** Creates a new instance of UploadFileMB */
        public UploadFileMB() {
        }
    }



<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和faces.config中的过滤器,我尝试了许多建议,并对其进行了多次调试,但我还是搞不清楚。

这是我的faces-config:

代码语言:javascript
复制
<?xml version='1.0' encoding='UTF-8'?>

<!-- =========== FULL CONFIGURATION FILE ================================== -->

<faces-config version="2.0"
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    >
        <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>
<lifecycle>
 <phase-listener>security.SecurityFilter</phase-listener>
</lifecycle>


<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
    <init-param>
        <param-name>uploadDirectory</param-name>
        <param-value>C:/home/vanessa/Desktop</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>



</faces-config>
EN

回答 2

Stack Overflow用户

发布于 2012-02-05 20:11:01

我认为您的项目中缺少这两个库: commons-fileupload和commons-io。如果你的项目是maven,你可以把它们添加到你的pom.xml中;

代码语言:javascript
复制
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId> commons-fileupload</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId> commons-io</artifactId>
            <version>2.1</version>
        </dependency>

否则,请从http://commons.apache.org下载它们并添加您的库。

票数 0
EN

Stack Overflow用户

发布于 2012-04-28 04:09:15

嗯,我在你的代码中发现了三个错误,它可以解决你的问题,我不能保证任何东西。

首先,你正在从错误的包中导入@SessionScope,它应该是javax.faces.bean.SessionScoped,另一个类是用于CDI的。

其次,在bean private中创建属性我不确定它是否算作这样的属性。同时,这也是一个尽可能隐藏字段的好习惯。

第三,也是最重要的,将action更改为actionListener并尝试。如果仍然不起作用,尝试添加到您的方法参数ActionEvent event (并小心选择正确的包,我曾经从javax.awt.导入ActionEvent,并花了两个小时找出可能的问题:-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9148807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档