때로는 JSF URL이 * .jsf, 때로는 * .xhtml, 때로는 / faces / *라는 것을 알 수 있습니다. 왜?
JSF를 배우려고했는데 URL이 *.jsf가끔 *.xhtml또는 /faces/*입니다. 누군가 내 지식을 채울 수 있습니까? Facelet을 사용하여 JSF를 만들 때 파일 확장자는입니다 .xhtml. .jsfURL 확장자는 어디에서 왔습니까?
.jsf(가) 여기서 확장자는 FacesServlet종종에에 매핑 JSF 1.2 기간이다 web.xml.
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
.xhtml확장은입니다 실제 물리적 예를 들어 당신의 웹 애플리케이션의 웹 콘텐츠에 배치 한대로 Facelets의 파일 Webapp/WebContent/page.xhtml.
당신은이 페이지를 호출하면 .jsf예 확장, http://localhost:8080/webapp/page.jsf다음이 FacesServlet호출됩니다의 위치 page.xhtml/ 파일을 구문 분석을 그 JSF 구성 요소를 렌더링합니다. 를 FacesServlet호출하지 않으면 최종 사용자는 원시 XHTML 소스 코드를 얻게됩니다 (오른쪽 클릭, 소스보기 로 볼 수 있음 ).
때때로 *.faces확장 또는 /faces/*폴더 매핑이 사용되었습니다. 그러나 이것은 JSF 1.0 / 1.1 시대의 것입니다. FacesServlet아무 말도하지 않더라도 듣고 싶은 매핑을 자유롭게 선택하고 사용할 수 있습니다 *.xyz. 실제 페이지 자체에는 항상 .xhtml확장자 가 있어야 하지만에서 다음 <context-param>으로 구성 할 수 있습니다 web.xml.
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xml</param-value>
</context-param>
이것은 (기본값)의 instad FacesServlet를 찾기 위해 변경됩니다 .page.xmlpage.xhtml
최근에는 JSF / Facelets 2.0에서 *.xhtml매핑이 사용되었습니다. JSF / Facelets 1.x에서는 실제 파일과 동일한 매핑 확장을 사용할 수 없습니다. 무한 루프가 발생합니다. 그러나 JSF / Facelets 2.0 이후로 가능하며이를 통해 http://localhost:8080/webapp/page.xhtml.
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
이렇게하면 최종 사용자가 예를 들어 브라우저 주소 표시 줄 .jsf에서 URL을 변경할 때마다 원시 소스 파일을 숨기도록 일부 보안 제한을 구성 할 필요가 없습니다 .xhtml. 단지 도구 (IDE의 및 플러그인) 및 학습 자원은 여전히에서 주창 이동 잡을 필요 *.jsf에를 *.xhtml. JSF 2.3에 따라 FacesServlet기본적으로 , 및 *.xhtml옆에 자동 등록됩니다 . 이것은 Mojarra 2.2.11로 백 포트되었습니다./faces/**.faces*.jsf
또한보십시오:
- web.xml URL 패턴에서 정규식을 사용할 수 있습니까?
- JSF 프로젝트의 <welcome-file>을 통해 기본 홈페이지 설정
- JSF는 렌더링 된 HTML 출력 대신 일반 / 원시 XHTML / XML / EL 소스가있는 빈 / 파싱되지 않은 페이지를 반환합니다.
- .jsp 또는 .xhtml 또는 .jsf 확장자를 사용하여 JSF 페이지를 작성하는 것의 차이점은 무엇입니까?
- / WEB-INF에 넣어야하는 XHTML 파일과 그렇지 않은 파일은 무엇입니까?
- .xhtml 확장자를 제거하려면 FacesServlet <url-pattern>을 사용자 정의하십시오.
'Program Club' 카테고리의 다른 글
| 현재 활동 바꾸기 (0) | 2020.12.30 |
|---|---|
| Catch (Exception)가 거의 항상 나쁜 생각 인 이유는 무엇입니까? (0) | 2020.12.30 |
| Scala에서 여러 생성자가있는 Java 클래스를 어떻게 하위 클래스로 만들 수 있습니까? (0) | 2020.12.30 |
| Git을 사용하여 자동 병합을 방지하려면 어떻게해야합니까? (0) | 2020.12.30 |
| 역 외래 키를 필터링하는 Django Queryset (0) | 2020.12.30 |