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 を使用しています
手伝ってくれてありがとう