2017-04-24 22 views
0

1つのファイルのアップロードを実装しようとしています。ここに私のコードは次のとおりです。JSFファイルのアップロード方法が見つかりません

<h:form id="form" enctype="multipart/form-data" > 
       <div class="col-sm-4"> 
        <div class="panel panel-default"> 
         <div class="panel-heading"> 
          <h4 class="mainHeader">Settings</h4> 
         </div> 
         <div class="panel-body"> 
          <div class="form-group"> 
           <div class="row"> 
            <div class="col-md-12"> 
             <h:outputLabel value="Upload FIle"></h:outputLabel> 
            </div> 
           </div> 
           <div class="row"> 
            <div class="col-md-12"> 
             <span class="btn btn-success fileinput-button"> 
             <h:inputFile value="#{fileBean.file}" > 
               <i class="fa fa-fw fa-plus"></i> 
               <f:ajax execute="@all" render="@form" listener="#{fileBean.parseDoc}"/> 
               <span>Upload</span> 
             </h:inputFile> 
             </span> 
            </div> 
           </div> 
           <div class="row"> 
            <div class="col-md-12"> 
            <h:commandButton actionListener="#{fileBean.parseDoc}"></h:commandButton> 
            </div> 
           </div> 
          </div> 
         </div> 
        </div> 
       </div> 
       </h:form> 

そして、ここではBeanです:

import java.io.InputStream; 

import javax.servlet.http.Part; 
import javax.faces.bean.ManagedBean; 
import javax.faces.bean.SessionScoped; 

@ManagedBean 
@SessionScoped 
public class FileBean { 
    private Part file; 



    public void parseDoc(){ 
     Ivy.log().debug("Size is: "+file.getSize()); 
    } 


    public Part getFile() { 
     return file; 
    } 

    public void setFile(Part file) { 
     this.file = file; 
    } 
} 

私は、メソッドparseDocを起動するたびに、それは、このエラーがスローされます。

MethodNotFoundException: Method not found: [email protected](javax.faces.event.AjaxBehaviorEvent) 

私は本当に何であるか知りませんここで問題となっているのは、このメソッドを使っても問題ありません。

答えて

1

JSFが署名付きのメソッド:parseDoc(javax.faces.event.AjaxBehaviorEvent)を探していることがわかります。あなたのメソッドはパラメータを取らず、したがって有効ではありません。 parseDoc()メソッドにタイプjavax.faces.event.AjaxBehaviorEventのパラメータを追加するだけです。

+0

ありがとう、間違いだった –

関連する問題