我无法在PrimeFaces 3.5上使fileUpload组件启动事件。我已经阅读了许多关于该主题的文章,并在那里提出建议,但仍然无效。我尝试了所有模式(简单,自动,高级),但没有成功。fileUpload不会在PrimeFaces 3.5中使用JSF 2.2触发事件
如果我使用JSF规范中的标准inputFile标记,它可以正常工作。
这是我的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>
这是与文件上传标签我认为网页的一部分:
<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>
从与被调用的方法管理豆提取物从标签:
@Named(value = "galleryManagedBean")
@RequestScoped
public class GalleryManagedBean {
public void addPicturesToGallery(FileUploadEvent event)
{
System.out.println("Triggered upload");
}
}
另外我想补充说,HTTP POST请求被正确解雇后,我使用Chrome中的调试工具对其进行检查。
我已经加入所需的库到类路径,即:
commons-fileupload-1.3.jar
commons-io-2.4.jar
PF 3.5专为JSF 2.0/2.1开发,不一定能保证与JSF 2.2一起工作。 PF 4.0是专门为JSF 2.2开发的,恰巧在2天前发布。我建议试试看。 – BalusC
宾果!它适用于PF 4.0。谢谢@BalusC! – bajer83
太好了。我做了更多的研究并发布了一个答案。 – BalusC