2011-11-09 3 views
0

PrimeFaces의 <p:fileUpload>에 문제가 있습니다.primefaces JSF P : fileUpload가 응답을받을 수 없습니다.

<p:fileUpload fileUploadListener="#{blackListImportBean.xlsFileUpload}" 
    multiple="true" allowTypes="*.xls;*.xlsx" description="*.xls;*.xlsx" 
    sizeLimit="100000"/> 
<h:commandButton actionListener="#{blackListImportBean.test}" 
    value="#{msg.SAVE}" action="test-page.xhtml" /> 

그리고 아래 빈 자바 코드 : 나는 Excel에서 아래와 같은 파일을 업로드 할 Facelet 페이지를 만들어 I 버튼을 클릭하면

public void xlsFileUpload(FileUploadEvent event){ 
    // ... 
} 

public void test() { 
    // ... 
} 

이 방법 test()가 호출 및 방법 xlsFileUpload()입니다 메서드가 매개 변수를 필요로하기 때문에 xlsFileUpload() 메서드를 찾을 수 없다는 오류 메시지가 표시됩니다. 매개 변수를 제거하면 페이지에서 메서드를 찾을 수 없습니다. 혼란 스러울 또 다른 문제는 업로드 파일을 가져올 수 없다는 것입니다. 나는 문서에 따라 그것을했고 나는 무엇을해야만하는지 모른다.

답변

0

두 질문 :

1) Primefaces 2.x 또는 3.X를 사용하고 있습니까? 2) 스택 추적은 무엇입니까? 이유에 대한 정보가 포함되어있을 수 있습니다.

파일 업로드 구성 요소는 사용자가 파일 업로드를 트리거 할 때 트리거되도록 자체 이벤트 시퀀스에 파일을 업로드합니다. 이 속성은 auto = "true"속성을 통해 자동으로 수행 될 수 있습니다. 또는 업로드를 유발하는 "업로드"버튼을 표시합니다. 따라서 테스트 방법 인 두 번째 작업과 분리됩니다.

귀하의 방법을 찾을 수 없다는 판단으로, 콩이 관리되지 않거나 환경이 동기화되지 않은 것 (클린 빌드)을 추측 할 수 있습니다. 필터가 업로드 된 각 파일에 대해 표시되는 일련의 메시지를 볼 수 설정되어있는 경우

@ViewScope 
public class TestBean 
{ 
    public void handleFileUpload(FileUploadEvent evt) 
    { 
    System.out.println("Handling Upload: " + evt.getFile()); 
    UploadedFile upload = evt.getFile(); 
FacesContext.getCurrentInstance() 
       .addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "File Uploaded", "This file is " + upload)); 
    . . . //do whatever here.... 
    } 
} 

// JSF 페이지

. . . 
    <h:form> 
     <p:messages id="messages" /> 
     <p:fileUpload 
      fileUploadListener="#{testBean.handleFileUpload}" 
      multiple="true" 
      allowTypes="*.*;" 
      update="messages" 
     /> 
     </h:form> 

. . . 

:

또한, 간단한 테스트를 해보십시오. 그렇지 않은 경우 유용한 오류 메시지가 나타납니다. 또한 경로 상에 기본적인 Apache 라이브러리 (CommonsFileUpload)가 필요하다는 것을 알아두면 문제의 원인이 될 확률이 높습니다.

+0

나는 primefaces RC2.2.jar를 사용하여, 나는 내게주는 샘플을 복사하고 내가 원하는 결과를 얻을 수 없다. – smilefatter

+0

나는 primefaces RC2.2.jar를 사용하는데, 나에게주는 샘플을 복사하고 내가 원하는 결과를 얻을 수없고, 프로젝트를 깨끗하게하고 다시 빌드한다. 콩은 실제로 관리되지 않으며 그 이유를 알지 못합니다. – smilefatter

+0

문제는 해결책이었다 오류가 내 web.xml을 – smilefatter

0

당신의 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> 
+0

예, 이미 web.xml에 구성했습니다. 감사합니다. – smilefatter

+0

아마도 그 이유 때문에 서블릿 이름이 일치하는지 확인하십시오. –

+0

그래, 고마워^=^ – smilefatter

관련 문제