【问题标题】:primefaces 3.5 uploadfile not working, i using netbean 7.2.1primefaces 3.5 上传文件不起作用,我使用的是 netbean 7.2.1
【发布时间】:2013-03-07 22:13:07
【问题描述】:

问题在于来自 primefaces 的文件上传器 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>
               ...
            </h:form>
            <h:form enctype="multipart/form-data">
                <p:fileUpload value="#{contratosMB.fileContrato}" mode="simple"/>

                <p:commandButton value="Submit" ajax="false"  
                                 actionListener="#{contratosMB.upload}" update=":form2:formgen:growl"/>
            </h:form>

contratosMB.java

 public void upload() {  
        if(fileContrato != null) {  
            JsfUtil.addSuccessMessage("Se ha cargado correctamente el archivo: " + fileContrato.getFileName()); 
        }  
    }  

我读到了一些这样的问题,但没有任何帮助... 我在项目中添加了 commons-fileupload 和 commons-io, 但不工作不进入上传方法,不发送异常。

【问题讨论】:

    标签: jsf-2 primefaces


    【解决方案1】:

    尝试改变

    actionListener="#{contratosMB.upload}"

    action="#{contratosMB.upload}".

    看看这个: Differences between action and actionListener

    【讨论】:

    • 没有任何事情......但是开始 glassfish 发送这个:
    • 严重:在 org.glassfish.hk2.classmodel.reflect.impl.TypesImpl.getType(TypesImpl) 访问大小为 12186 java.lang.NullPointerException 的 org/apache/commons/fileupload/FileUploadBase.class 时出现异常.java:78) at org.glassfish.hk2.classmodel.reflect.impl.ModelClassVisitor.visit(ModelClassVisitor.java:119) at org.objectweb.asm.ClassReader.accept(Unknown Source) at org.objectweb.asm.ClassReader .accept(Unknown Source) at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:363)
    • 在 com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.handleEntry(ReadableArchiveScannerAdapter.java:171) 在 com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:133)在 org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:348) 在 org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:70) 在 org.glassfish.hk2。 classmodel.reflect.Parser$3.call(Parser.java:307) at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:296)
    • 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 在 java.util.concurrent.FutureTask.run(FutureTask.java:166) 在 java.util.concurrent .ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)
    【解决方案2】:

    它可以创建和编辑faces-config:

        <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>1.4</version>
    </dependency>
    

    但对我来说工作不够,因为表单上传器在其他表单的内部......

       <h:form>
      ...
            <h:form enctype="multipart/form-data">  
    
                <p:messages showDetail="true"/>  
    
                <p:fileUpload value="#{contratosMB.fileContrato}" mode="simple"/>  
    
                <p:commandButton value="Submit" ajax="false"  
                                 actionListener="#{contratosMB.upload}"/>  
    
            </h:form>  
        </h:form>
    

    任何人都可以告诉我为什么?

    【讨论】:

    • 非常感谢!我的也不工作。所以我注意到我的项目中缺少commons-fileupload。谢谢!
    【解决方案3】:

    嵌套“表单”元素是非法的。尝试以高级模式上传文件,并使用 FileUploadListener 访问 FileUploadEvent 和数据。

    【讨论】:

      猜你喜欢
      • 2013-02-05
      • 1970-01-01
      • 2014-05-15
      • 2013-08-12
      • 2017-10-03
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 2013-08-31
      相关资源
      最近更新 更多