1

問題は、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 を追加しましたが、アップロード メソッド内に入らず、例外を送信しないでください。

4

3 に答える 3

1

変更してみる

actionListener="#{contratosMB.upload}"

action="#{contratosMB.upload}".

これをチェックしてください: action と actionListener の違い

于 2013-03-07T22:51:24.943 に答える
0

それは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>

どんな体でも理由を教えてくれますか?

于 2013-03-08T15:02:11.767 に答える
0

「フォーム」要素のネストは違法です。詳細モードでファイルをアップロードし、FileUploadListener を使用して FileUploadEvent とデータにアクセスしてみてください。

于 2015-06-15T11:54:17.943 に答える