Nie mogę utworzyć komponentu fileUpload na PrimeFaces 3.5, aby wystrzelić zdarzenie. Przeczytałem wiele postów na ten temat i poszedłem doradzić, ale nadal nie działa. Wypróbowałem wszystkie tryby (prosty, automatyczny, zaawansowany) bez powodzenia.fileUpload nie wywołuje zdarzenia w PrimeFaces 3.5 z JSF 2.2
Jeśli użyję standardowego znacznika inputFile ze specyfikacji JSF, to działa poprawnie.
To jest mój plik web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>redmond</param-value>
</context-param>
<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>
<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>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/home.xhtml</welcome-file>
</welcome-file-list>
</web-app>
I to jest część mojej stronie widoku z tagiem FileUpload:
<h:form enctype="multipart/form-data">
<p:dialog id="basicDialog" header="Add pictures" widgetVar="dlg1" >
<p:fileUpload fileUploadListener="#{galleryManagedBean.addPicturesToGallery}" multiple="true"/>
</p:dialog>
</h:form>
Ekstrakt z zarządzanego fasoli z metodą, która jest wywoływana z tagu:
@Named(value = "galleryManagedBean")
@RequestScoped
public class GalleryManagedBean {
public void addPicturesToGallery(FileUploadEvent event)
{
System.out.println("Triggered upload");
}
}
Chciałbym dodać, że żądanie HTTP POST jest uruchamiane poprawnie po I sprawdziłem to za pomocą narzędzia do debugowania w Chrome.
I dodano niezbędne bibliotek ścieżka klasy to:
commons-fileupload-1.3.jar
commons-io-2.4.jar
PF 3.5 został opracowany specjalnie dla JSF 2.0/2.1 i niekoniecznie musi działać z JSF 2.2. PF 4.0 jest opracowany specjalnie dla/z JSF 2.2 i przypadkowo został wydany zaledwie 2 dni temu. Proponuję spróbować. – BalusC
Bingo! Działa poprawnie z PF 4.0. Dziękuję @BalusC! – bajer83
Świetnie. Zrobiłem trochę więcej badań i wysłałem odpowiedź. – BalusC