我们正在开发一个JSF spring webflow web 应用程序,我们正在尝试使用primefaces 文件上传小部件。primefaces 工作正常,小部件得到正确渲染。但是文件上传不起作用。永远不会调用 backingbean FileUploadController 中的 handlefileupload 函数。其他 primefaces 组件,例如按钮可以调用该 bean 中的函数,因此它可以正确初始化。您可以在下面找到我们的配置。目前我们正在eclipse中开发并使用maven部署Web应用程序,并直接在eclipse中使用jetty服务器运行该应用程序。在 tomcat 上部署 .war 也不起作用。
问题:
- 选择文件并单击上传后,小部件会给出错误“IO 错误”或“HTTP 错误”
- 一些数据被传输到服务器(我们嗅探了网络流量)
- 永远不会调用 backingbean FileUploadController 中的 handlefileupload() 函数
依赖项
- org.primefaces 2.2.RC2
- org.springframework.webflow, webflow 和 faces 2.2.1.RELEASE
- 公共文件上传 1.2.2
- commons-io 2.0
- com.sun.faces、api 和 impl 2.0.3
- org.springframework.security
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>
开始.xhtml
<h:form id="mainForm" enctype="multipart/form-data" prependid="false" >
<p:fileUpload id="fileUp" fileUploadListener="#fileUploadController.handleFileUpload}"
description="Images" /></h:form>
文件上传控制器.java
public void handleFileUpload(FileUploadEvent event) {
System.out.println("FileUpload Test");
FacesMessage msg = new FacesMessage("ok", event.getFile().getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
bean-config.xml
<bean id="fileUploadController" class="de.hsrm.mi.media.FileUploadController" scope="session"></bean>
提前致谢。我们希望有人可以帮助我们:)