0

PrimeFaces を使用したファイルのアップロードに問題があります。私は StackOverflow の古い投稿を調べましたが、何も役に立ちませんでした。奇妙なことに、昨日は機能しましたが、サーバーを起動したところ、もう機能しています。アップロードされたファイルにアクセスしようとすると、NPE が発生します。

だから私は commons-fileupload-1.2.2.jar と commons-io-1.4 をダウンロードし、クラスパスに入れ、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 ページのフォームには、説明付きの 1 つのフィールド、1 つのコンボ ボックス、およびフィールド アップロード要素が含まれています。

 <h:form enctype="multipart/form-data">
            <p:panel header="#{submitProjectPage['header']}">
                <h:panelGrid columns="2">
                    #{submitProjectPage['chooseProject']}
                    <p:selectOneMenu value="#{submitProjectBean.project}" converter="projectConverter">
                        <f:selectItems value="#{submitProjectBean.studentsProjects}" />
                    </p:selectOneMenu>

そして最後に、私のBeanはRequestScopedこのメソッドを持っています

private UploadedFile projectFile;

public void submitProject(ActionEvent event) {//also tried without parameter
    project.setFile(projectFile.getContents());
    project.setStatus(StatusEnum.DELIVERED);
    daoBean.update(project);
}
                    #{submitProjectPage['submitInformation']}
                    <p:inputTextarea rows="10" value="#{submitProjectBean.s}"/>
                    #{submitProjectPage['file']}
                    <p:fileUpload value="#{submitProjectBean.projectFile}" mode="simple" />

                    <p:commandButton ajax="false" value="#{submitProjectPage['submit']}" 
                                    actionListener="#{submitProjectBean.submitProject}" />
                </h:panelGrid>
            </p:panel>

インポートが正しいと確信しています。 projectFile フィールドのセッターもあるため、どこに問題があるのか​​ 本当にわかりません。PrimeFaces v 3.01 を使用しています

手伝ってくれてありがとう

4

1 に答える 1

0

私は解決策を見つけました.Glassfishが何らかの理由でApacheライブラリをデプロイしなかったため、それらをクラスパスから削除し、再度追加したところ、魔法のように機能しました:-)

だから多分それは誰かを助けるでしょう:)

于 2012-04-28T08:57:59.317 に答える