나는 자바 웹 프로젝트에 문제가있다. 내가하고있는 프로젝트는 표준 jsp와 jsf 페이지가 섞여서 만들어졌다. main.jsp라고하는 응용 프로그램의 기본 페이지는 사용자의 인증을 확인하는 데 사용되는 서블릿 필터 내에서 세션 범위가 작성된 관리 Bean에 액세스해야하는 표준 JSP 페이지입니다. 은 내 web.xml 파일에서 나는 엔진이 http//myserver/myapp/faces/main.jsp
모든 것이 잘 작동으로 내 응용 프로그램을 열면 및/얼굴/* 요청하기jsf context creation
<filter-mapping>
<filter-name>extensionsFilter</filter-name>
<url-pattern>*.jsf</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>extensionsFilter</filter-name>
<url-pattern>/faces/*</url-pattern>
</filter-mapping>
을 .jsf에 응답해야합니다 향 설정했습니다. http://myserver/myapp/main.jsp
으로 애플리케이션을 여는 경우 faces 컨텍스트가 아직 작성되지 않았기 때문에 오류가 발생합니다. 환영 페이지를 설정하거나 아파치 리디렉션을 설정하지 않음 사용자가 브라우저에 h ** p : // myserver/myapp를 입력하기 만하면 애플리케이션이 올바른 페이지 (faces 컨텍스트 내의 main.jsp)를 열게 할 수 있습니다. 그 이유는 페이지 /faces/main.jsp가 phisically 존재하지 않기 때문입니다.
2 해결 방법이있을 수 있습니다 :/faces/* 패턴 밖에서도 얼굴 컨텍스트를 시작할 수 있도록하거나, 페이지가 열리지 않더라도/faces/main.jsp로 리다이렉트 할 수있는 방법을 찾으십시오. 존재하지만 ... 나는 모든 것을 실패했다.
힌트를 따르려고하지만 뭔가 잘못 생각합니다. main.jsp의 이름을 main.jsf로 바꾸면 작동하지 않습니다. tomcat은 main.jsf 컨텐트로 일반 텍스트로 응답하여 페이지 코드를 보냅니다. 페이지를 만들기 위해해야 할 일은 /faces/main.jsp를 호출 할 때와 동일한 방식으로 작동합니다. – themarcuz
실제 파일이 아닌 URL에서만 이름을 바꿔야합니다. 실제 파일 확장자는'.jsp'이어야합니다. 'FacesServlet'은 자동으로 올바른 JSP 파일을 찾습니다. JSP 파일을 구문 분석하기 위해 servletcontainer의 내장 JspServlet을 트리거 할 것이므로 확장을 유지해야합니다. – BalusC
나는 그것을 얻을 수 없다 :(만약 당신이 말한 것을 이해한다면, http : //myserver/myapp/main.jsf를 호출하는 것을 수정하지 않고 애플리케이션은 faces 컨텍스트를 생성하고 main.jsp sandard jsp로 응답해야한다. 페이지가 ... 작동하지 않으므로 – themarcuz