JSF Spring Webflow Web アプリケーションを開発しており、 primefaces fileuploadウィジェットを使用しようとしています。primefaces は正常に動作し、ウィジェットは正しくレンダリングされます。ただし、ファイルのアップロードは機能していません。backingbean FileUploadController の handlefileupload 関数は呼び出されません。ボタンなどの他のprimefacesコンポーネントは、そのBeanの関数を呼び出すことができるため、正しく初期化されます。以下に、構成を示します。現在、私たちはEclipseで開発し、Mavenを使用してWebアプリを展開し、EclipseでJettyサーバーを使用してアプリを直接実行しています。tomcat に .war をデプロイしても機能しませんでした。
問題:
- ファイルを選択してアップロードをクリックすると、ウィジェットに「IO エラー」または「HTTP エラー」というエラーが表示される
- 一部のデータがサーバーに転送されます (ネットワーク トラフィックを傍受しました)
- backingbean FileUploadController の handlefileupload() 関数が呼び出されない
依存関係
- org.primefaces 2.2.RC2
- org.springframework.webflow、webflow、faces 2.2.1.RELEASE
- commons-fileupload 1.2.2
- コモンズ-io 2.0
- com.sun.faces、api および impl 2.0.3
- org.springframework.security
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>
start.xhtml
<h:form id="mainForm" enctype="multipart/form-data" prependid="false" >
<p:fileUpload id="fileUp" fileUploadListener="#fileUploadController.handleFileUpload}"
description="Images" /></h:form>
FileUploadController.java
public void handleFileUpload(FileUploadEvent event) {
System.out.println("FileUpload Test");
FacesMessage msg = new FacesMessage("ok", event.getFile().getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
beans-config.xml
<bean id="fileUploadController" class="de.hsrm.mi.media.FileUploadController" scope="session"></bean>
前もって感謝します。誰かが私たちを助けてくれることを願っています:)