실제로 HTTP 요청은 한 번만 구문 분석 할 수 있습니다. 클라이언트는 두 번 구문 분석해야하는 경우 두 번째로 보내지 않습니다. 문제는 PrimeFaces 파일 업로드 필터가 어떤 이유로 든 일반 JSP/서블릿 요청에서 호출되므로 일반 JSP/Servlet이 자신의 용도로 파싱하기 전에 JSF에 대한 업로드를 구문 분석한다는 것을 나타냅니다. 이것은 일어나서는 안됩니다.
일반 JSP/서블릿 요청이 아닌 JSF 요청에만 PrimeFaces 파일 업로드 필터를 매핑해야합니다. 보통 FacesServlet
에 매핑하여이를 달성합니다.
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<servlet-name>Faces Servlet</servlet-name>
</filter-mapping>
합니다 (<servlet-name>
가 FacesServlet
클래스의 <servlet>
정의에 사용 된대로 정확히 같은 값이어야하며 <filter-name>
정확하게 분명히 파일 업로드 필터 클래스의 <filter>
definiton에 사용되는 것과 동일한 값)
또는 이전 JSP/Servlet 파일 업로드 접근법이 명백한 이유로 JSF 페이지에서 곧바로 사용 된 경우 PrimeFaces 파일 업로드 필터를 페이지에만 적용되는보다 구체적인 URL 패턴에 매핑해야합니다 PrimeFaces 파일 업로드 com 포함 고참.
<filter-mapping>
<filter-name>PrimeFaces FileUpload Filter</filter-name>
<url-pattern>/upload.xhtml</url-pattern>
</filter-mapping>
당신이 여러 <url-pattern>
항목을 지정할 수 있습니다
주 (당신이 예를 *.jsf
대신 *.xhtml
에 대한에 FacesServlet
를 매핑 한 경우, 당신은 분명히 /upload.jsf
에 URL 패턴을 변경해야합니다) 단일 필터 매핑. PrimeFaces 파일 업로드 구성 요소가 포함 된 여러 페이지가있는 경우에 유용합니다.
<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>