Помимо определения <security-constraint>
для блокировки прямого доступа к .xhtml
файлам, как правильно ответил Stacker на этот вопрос, вы также можете просто изменить <url-pattern>
сопоставления FacesServlet
с *.jsf
на *.xhtml
.
<servlet>
<servlet-name>facesServlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>facesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
В JSF 1.x это раньше заканчивалось бесконечным циклом, но в JSF 2.x больше нет. Таким образом, вы можете просто позвонить / связать все страницы как .xhtml
, не используя разные расширения. Единственным недостатком является то, что вы не сможете отобразить «простой» XHTML-файл без вызова FacesServlet
, но такая страница должна быть названа .html
в любом случае:)