Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Servlets PrimeFaces文件上载_Servlets_Jsf 2_Primefaces_Jspx - Fatal编程技术网

Servlets PrimeFaces文件上载

Servlets PrimeFaces文件上载,servlets,jsf-2,primefaces,jspx,Servlets,Jsf 2,Primefaces,Jspx,我在一个项目中使用jsp/Servlet,我决定使用PrimeFaces迁移到JSF,我在尝试使用PrimeFaces fileupload控件上载文件时遇到了一个问题,然后当我将其配置为web.xml时,它工作得很好,现在所有旧的jsp文件上载方式都不起作用了: DiskFileUpload upload = new DiskFileUpload(); List items = upload.parseRequest(request); 实际上,HTTP请求只能解析一次。如果需要对其进行

我在一个项目中使用jsp/Servlet,我决定使用PrimeFaces迁移到JSF,我在尝试使用PrimeFaces fileupload控件上载文件时遇到了一个问题,然后当我将其配置为web.xml时,它工作得很好,现在所有旧的jsp文件上载方式都不起作用了:

 DiskFileUpload upload = new DiskFileUpload();
 List items = upload.parseRequest(request);

实际上,HTTP请求只能解析一次。如果需要对其进行两次解析,客户端将不会再次发送它。您的问题表明,由于某种原因,PrimeFaces文件上载过滤器也会在普通JSP/Servlet请求上被调用,从而在普通JSP/Servlet有机会解析供自己使用之前解析JSF的上载。这不应该发生

您只需要在JSF请求上映射PrimeFaces文件上载过滤器,而不需要在普通JSP/Servlet请求上映射。通常通过将其映射到
FacesServlet
来实现

<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
(如果您已经将
FacesServlet
映射到了例如
*.jsf
而不是
*.xhtml
,那么显然应该将URL模式更改为
/upload.jsf

请注意,您可以在单个筛选器映射上指定多个
条目,这对于包含PrimeFaces文件上载组件的多个页面非常有用

<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <url-pattern>/upload.xhtml</url-pattern>
</filter-mapping>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <url-pattern>/upload1.xhtml</url-pattern>
    <url-pattern>/upload2.xhtml</url-pattern>
    <url-pattern>/upload3.xhtml</url-pattern>
</filter-mapping>

PrimeFaces文件上载筛选器
/上传1.xhtml
/上传2.xhtml
/上传3.xhtml