2012-04-01 3 views
1

слушатель не реагирует на мое действие:р: FileUpload премьер лица

<h:form> 
    <p:fileUpload mode="simple" fileUploadListener="#{ADD.uploadImage}" auto="true"/> 
</h:form> 

и вот основа боб:

@ManagedBean 
@ViewScoped 
public class TestClass { 

    public void uploadImage(FileUploadEvent e){ 
     System.out.println("EVENT"); 
    } 

} 

и вот моя web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 

    <context-param> 
     <param-name>javax.faces.PROJECT_STAGE</param-name> 
     <param-value>Development</param-value> 
    </context-param> 

    <filter> 
     <filter-name>PrimeFaces FileUpload Filter</filter-name> 
     <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class> 
     <init-param> 
      <param-name>thresholdSize</param-name> 
      <param-value>51200</param-value> 
     </init-param> 
     <init-param> 
      <param-name>uploadDirectory</param-name> 
      <param-value>/tmpDir3/</param-value> 
     </init-param> 
    </filter> 
    <filter-mapping> 
     <filter-name>PrimeFaces FileUpload Filter</filter-name> 
     <servlet-name>Faces Servlet</servlet-name> 
    </filter-mapping> 

    <servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>/faces/*</url-pattern> 
    </servlet-mapping> 

    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 

    <welcome-file-list> 
     <welcome-file>faces/index.xhtml</welcome-file> 
    </welcome-file-list> 
</web-app> 

Проблема в том, что метод uploadImage не вызван.

Что не так с моим кодом или отсутствием?

+0

ваша форма получила enctype = "multipart/form-data", например: Daniel

+0

У меня есть это исключение в log tomcat 01/04/2012 01:00:57 م org. apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() для сервлета [Faces Servlet] в контексте пути [/ UploadedImageTest] выбрал исключение java.io.IOException: обработка запроса multipart/form-data не выполнена. \ tmpDir \ upload__5e4873ce_1366d8db020__8000_00000020.tmp (система не может найти указанный путь) – user1240119

+1

да у меня есть эта строка в моей форме – user1240119

ответ

0

Если вы добавите аннотацию @ManagedBean, имя экземпляров вашего компонента будет именем вашего класса (с первой буквой в нижнем регистре). В вашем примере, поскольку имя вашего класса равно TestClass, имя вашего компонента будет testClass.

Итак, когда вы пишете выражение EL, который должен вызвать метод на этом компоненте, вы должны написать #{testClass.myMethod} (в вашем случае это будет #{testClass.uploadImage}

См:. http://docs.oracle.com/javaee/6/api/javax/faces/bean/ManagedBean.html

Смежные вопросы