2017-04-24 1 views
0

단일 파일 업로드를 구현하려고합니다. 여기 내 코드입니다 :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> 

그리고 여기에 콩입니다 :

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

고마워요, 그게 실수 였어요. –

관련 문제