1

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>

前もって感謝します。誰かが私たちを助けてくれることを願っています:)

4

2 に答える 2

2

代わりにこのフィルタを使用してください

<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>Spring MVC Dispatcher Servlet</servlet-name>
</filter-mapping>
于 2011-09-12T06:13:54.547 に答える
0

エラーがあるか、xhtml ファイルから間違ってコピーしました

<h:form id="mainForm" enctype="multipart/form-data" prependid="false" > 
       <p:fileUpload id="fileUp" fileUploadListener="#fileUploadController.handleFileUpload}"   
    description="Images" /></h:form>

「fileUploadController.handleFileUpload}」の前に「{」がありません。

<h:form id="mainForm" enctype="multipart/form-data" prependid="false" > 
       <p:fileUpload id="fileUp" fileUploadListener="#{fileUploadController.handleFileUpload}"   
    description="Images" /></h:form>
于 2010-12-15T21:41:49.523 に答える